mysql的pivot
时间: 2023-09-03 09:15:54 浏览: 62
MySQL本身并没有内置的pivot操作,但是可以通过一些SQL查询来实现类似pivot的功能。下面是一个示例:
假设有一个表格`sales`,包含以下字段:`year`,`quarter`,`region`,`sales_amount`。
要将这个表格按照`year`为行,`quarter`为列,`region`为分类,`sales_amount`为值,可以使用下面的SQL语句:
```
SELECT year,
SUM(CASE WHEN quarter = 'Q1' THEN sales_amount ELSE 0 END) AS Q1,
SUM(CASE WHEN quarter = 'Q2' THEN sales_amount ELSE 0 END) AS Q2,
SUM(CASE WHEN quarter = 'Q3' THEN sales_amount ELSE 0 END) AS Q3,
SUM(CASE WHEN quarter = 'Q4' THEN sales_amount ELSE 0 END) AS Q4
FROM sales
GROUP BY year;
```
这个查询语句将会把表格转换成以下形式:
| year | Q1 | Q2 | Q3 | Q4 |
|------|----|----|----|----|
| 2020 | 1000 | 2000 | 1500 | 1800 |
| 2021 | 1200 | 2500 | 1800 | 2200 |
其中每一行代表一个`year`的汇总数据,每一列代表一个`quarter`的数据,对应的值为`sales_amount`的总和。
需要注意的是,这种方法只能适用于已知的`quarter`值,如果`quarter`值是动态的,那么需要使用动态SQL来构造查询语句。
阅读全文