mysql5.7 列转行
时间: 2024-06-28 07:01:17 浏览: 106
sql 列转行
在MySQL 5.7中,将列转换为行(即行化)通常是指使用`UNION ALL`、`CASE`语句或者`PIVOT`操作来重塑数据的布局,以便在一个查询结果集中把单个列的数据分布在多行中。这在数据分析和报表生成时非常有用,特别是当你需要根据某个值进行分类汇总时。
例如,假设你有一个销售记录表,其中有一个`product`列,你可能想要按产品分组,将每个产品的销售数量转换为单独一行:
```sql
SELECT product, sales
FROM (
SELECT product, COUNT(*) as sales
FROM sales_data
GROUP BY product
) subquery
PIVOT (
SUM(sales)
FOR product IN ('ProductA', 'ProductB', 'ProductC')
);
```
在这个例子中,原始表中的每一行关于特定产品的销售数据会被转换成产品名称作为列标题,对应的销售数量作为对应列的值。
阅读全文