首頁 >資料庫 >mysql教程 >如何使用 CASE 和聚合函數將 MySQL 中的行轉換為列?

如何使用 CASE 和聚合函數將 MySQL 中的行轉換為列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-03 02:28:11802瀏覽

How to Pivot Rows into Columns in MySQL Using CASE and Aggregate Functions?

如何在MySQL 中將行轉換為列

資料透視表是一種常見的資料轉換,用於將資料重新排列為更易於處理的格式閱讀並分析。在這種情況下,我們希望將包含多行的結果集轉換為一個表,其中每個不同類型值的欄位和每個唯一 ID 和電子郵件組合的行。

要在 MySQL 中實現此目的,我們可以使用以下查詢:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

此查詢使用 CASE 語句根據每行的 Type 值有條件地設定 Degignation 值。然後,MAX() 聚合函數會傳回每組 ID 和電子郵件中每種類型的最大 Degignation 值。

注意: 將佔位符表名稱 (mytable) 替換為包含您的資料的實際表名稱。此外,您需要事先知道所有不同的 Type 值,因為 SQL 不允許在查詢執行期間動態新增列。

以上是如何使用 CASE 和聚合函數將 MySQL 中的行轉換為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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