pivot mysql
时间: 2023-09-03 18:15:39 浏览: 88
Mysql实现交叉表的查询
在 MySQL 中,PIVOT 是一种将行值转换为列值的操作。可以使用 PIVOT 来创建交叉表(也称为透视表),它将数据按照某些维度进行分类汇总。
下面是一个简单的示例,假设我们有一个包含销售数据的表,并且我们想要按照不同的地区和产品类型来查看销售额:
```
SELECT region,
SUM(CASE WHEN product_type = 'A' THEN sales ELSE 0 END) AS 'A_sales',
SUM(CASE WHEN product_type = 'B' THEN sales ELSE 0 END) AS 'B_sales',
SUM(CASE WHEN product_type = 'C' THEN sales ELSE 0 END) AS 'C_sales'
FROM sales_table
GROUP BY region;
```
在上面的查询中,我们使用了 CASE WHEN 语句来将每个产品类型的销售额转换为列值,并使用 SUM 函数对其进行汇总。最终结果将按照地区进行分组,并显示每个地区和产品类型的销售额。
需要注意的是,PIVOT 操作通常需要使用动态 SQL 来实现,因为在编写查询时可能无法预测要使用哪些列值。可以使用 CONCAT 和 GROUP_CONCAT 函数来动态生成查询语句。
阅读全文