欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 行變列 列變行

錢衛國2年前6瀏覽0評論

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 中進行行變列和列變行的操作可以幫助我們實現各種不同的需求,例如將數據進行匯總和統計,使其更加易于分析和理解。