在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中文網其他相關文章!