MySQL 是一個流行的關系型數據庫管理系統,用于存儲和管理數據。在 MySQL 中,有時需要對行和列進行轉換。行和列之間的轉換可以實現各種不同的操作。
MySQL 中,行和列之間的轉換可以通過 pivot 或 unpivot 操作實現。pivot 操作可以將行轉換為列,而 unpivot 操作可以將列轉換為行。
-- pivot 操作實現行變列 SELECT customer_id, SUM(CASE WHEN YEAR(order_date) = '2019' THEN order_amount ELSE 0 END) AS `2019`, SUM(CASE WHEN YEAR(order_date) = '2020' THEN order_amount ELSE 0 END) AS `2020` FROM orders GROUP BY customer_id;
上面的 SQL 查詢將訂單表中每個客戶的 2019 年和 2020 年的訂單金額分別作為表中的一列進行顯示。其中,SUM 函數用于計算年份對應的訂單金額。
-- unpivot 操作實現列變行 SELECT customer_id, year, order_amount FROM ( SELECT customer_id, SUM(CASE WHEN YEAR(order_date) = '2019' THEN order_amount ELSE 0 END) AS `2019`, SUM(CASE WHEN YEAR(order_date) = '2020' THEN order_amount ELSE 0 END) AS `2020` FROM orders GROUP BY customer_id ) AS subquery UNPIVOT ( order_amount FOR year IN (`2019`, `2020`) ) AS unpivot_table;
上面的 SQL 查詢將訂單表中每個客戶的 2019 年和 2020 年的訂單金額分別作為表中的一行進行顯示。其中,UNPIVOT 函數用于將列轉換成行。
在 MySQL 中進行行變列和列變行的操作可以幫助我們實現各種不同的需求,例如將數據進行匯總和統計,使其更加易于分析和理解。
上一篇mysql 行拆分
下一篇京東左側二級菜單css