首頁  >  文章  >  資料庫  >  如何使用 GROUP BY 和多個資料 ID 透視 MySQL 查詢結果?

如何使用 GROUP BY 和多個資料 ID 透視 MySQL 查詢結果?

Barbara Streisand
Barbara Streisand原創
2024-11-07 17:09:03814瀏覽

How to Pivot MySQL Query Results with GROUP BY and Multiple Data IDs?

使用GROUP BY 的MySQL PIVOT 查詢結果

問題:

問題:

問題:
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',
       ...
       SUM(IF(data_id = 20, data_value, 0)) AS 'input_20'
FROM data
GROUP BY d.data_timestamp
ORDER BY d.data_timestamp ASC

問題:

  • 問題:
  • 問題:
  • 問題:

問為將行顯示為列,按指定鍵(例如時間戳記)對資料進行分組,同時確保每個鍵的所有資料值都顯示在對應的列中。

  • 建議的查詢:
解釋:外部查詢從資料表中選擇不同的數據時間戳記。 對於每個資料時間戳,查詢計算使用 SUM() 聚合中的 IF() 函數計算每個 data_id 的資料值總和。 如果 data_id 與所需的 id 相符(例如,input_1 為 1),則將對應的資料值加到總和中;否則,加 0。 對每個 data_id 重複此計算,最多 20,為每個不同的 data_id 建立一列。 最終結果按資料時間戳分組並按升序排序限制:此方法需要查詢中每個data_id 的明確總和,如果存在大量id。 根據特定要求和資料結構,可以使用涉及 CASE 或多層級 JOIN 的替代方法。

以上是如何使用 GROUP BY 和多個資料 ID 透視 MySQL 查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn