在 MySQL 中使用 GROUP BY 透视查询结果
通过将数据从行重组为列,透视可以帮助改进数据可视化和分析。要基于特定列透视查询结果,我们可以使用 MySQL 中的 GROUP BY 子句。
考虑具有以下架构的示例表:
data_id data_timestamp data_value -------------------------------------------- 1 2011-07-07 00:01:00 0.400 1 2011-07-07 00:02:00 0.500 1 2011-07-07 00:03:00 0.600 1 2011-07-07 00:04:00 0.700 2 2011-07-07 00:01:00 0.100 2 2011-07-07 00:02:00 0.200 2 2011-07-07 00:03:00 0.250 2 2011-07-07 00:04:00 2.300
要基于以下内容透视此数据data_timestamp 列,我们可以使用 CASE 语句和 SUM 聚合函数的组合:
SELECT d.data_timestamp , SUM( CASE WHEN data_id = 1 THEN data_value ELSE 0 END ) AS 'input_1' , SUM( CASE WHEN data_id = 2 THEN data_value ELSE 0 END ) AS 'input_2' FROM data GROUP BY data_timestamp ORDER BY data_timestamp ASC
此查询有效地总结了每个唯一 data_timestamp 的 data_value 列,并为每个不同的 data_id 创建新列(在此case,input_1 和 input_2)。
或者,我们也可以使用 IF 语句来获得相同的结果:
SELECT d.data_timestamp , SUM( IF(data_id = 1, data_value, 0) ) AS 'input_1' , SUM( IF(data_id = 2, data_value, 0) ) AS 'input_2' FROM data GROUP BY data_timestamp ORDER BY data_timestamp ASC
这两种方法都提供了一种有效的方法来使用MySQL 中的 GROUP BY 子句,允许更灵活且信息丰富的数据分析。
以上是如何使用 GROUP BY 子句在 MySQL 中转换查询结果?的详细内容。更多信息请关注PHP中文网其他相关文章!