sqlserver PIVOT
时间: 2024-09-11 10:14:32 浏览: 42
行转列之SQL SERVER PIVOT与用法详解
5星 · 资源好评率100%
在 SQL Server 中,PIVOT (即 "Position Independent Value Transformation") 是一种特殊的聚合函数,用于转换行数据为列数据。它通常用于处理表格中的分组数据,如你想按照某个字段的多种取值对另一字段进行汇总。当原始数据中存在固定的分类(比如月份),但你希望结果集中展示的是每个分类下的汇总值时,就可以使用 PIVOT。
例如,如果你有一个销售报告的表,你想统计每个产品在不同月份的总销售额,可以这样做:
```sql
SELECT *
FROM (
SELECT ProductID, Month, SUM(Sales) as TotalSales
FROM SalesReport
GROUP BY ProductID, Month
) src
PIVOT (
SUM(TotalSales)
FOR Month IN ('January', 'February', 'March', ...) -- 需要列出所有的月份
) pivoted_table;
```
在这个例子中,内部查询先按产品ID和月份计算每行的销售额总和,然后外部的 PIVOT 将这些月份数值变成新的列名,并显示相应的销售额。
阅读全文