SQL行转列(也称为透视表)是一种将数据从行格式转换为列格式的技术。在MySQL中,这通常通过使用聚合函数和GROUP BY
子句来实现。
假设我们有一个销售表sales
,结构如下:
| id | product | category | amount | |----|---------|----------|--------| | 1 | A | X | 100 | | 2 | B | Y | 200 | | 3 | A | X | 150 | | 4 | C | Z | 300 |
我们希望将产品作为列,类别和金额作为行。
使用MySQL的CASE
语句和聚合函数可以实现这一目标:
SELECT
category,
SUM(CASE WHEN product = 'A' THEN amount ELSE 0 END) AS product_A,
SUM(CASE WHEN product = 'B' THEN amount ELSE 0 END) AS product_B,
SUM(CASE WHEN product = 'C' THEN amount ELSE 0 END) AS product_C
FROM
sales
GROUP BY
category;
| category | product_A | product_B | product_C | |----------|-----------|-----------|-----------| | X | 250 | 0 | 0 | | Y | 0 | 200 | 0 | | Z | 0 | 0 | 300 |
通过上述方法,你可以将数据从行格式转换为列格式,从而更方便地分析和展示数据。
领取专属 10元无门槛券
手把手带您无忧上云