的功能MSSQL中利用Pivot实现数据转换的初探(mssql中pivot)

MSSQL中利用Pivot实现数据转换的初探

SQL Pivot 是一种受到大家欢迎的SQL功能,它能够让我们将标准的行/列表格转换成不同的行/列表格,以实现数据分析的需求。 MSSQL作为商业级数据库管理系统,具有优异的查询表达能力,其中集成的 Pivot功能更是非常的实用和完备。如下图所示:

![图1](picture/picture1.jpg)

作为一个基本的使用场景,假设我们有一张表,记录了某公司每个月份各个城市的营收情况。而你需要以每个城市为行,月份为列,来得到实际的报表。

“`sql

SELECT * FROM [Revenue Report]


可以用Pivot完成本次的数据变换。

```sql
SELECT City, [Jan], [Feb],[March] FROM
(SELECT City, Month, Revenue FROM [Revenue Report]) AS SourceTable
PIVOT
(SUM(Revenue) FOR Month IN([Jan],[Feb],[March])) AS PivotTable ;

简单的查询语句可以在无需任何中间表的情况下轻而易举地完成我们所要求的表示格式转变,而 Pivot 就是用于实现此功能的关键。

正如上面提到的,SQL Server 中的 Pivot 功能要求创建一个包含上述希望变换出来的列名的中间表。 另外,我们还需要制定一个列用于记录要总结的数据,并使用一个原列来记录新列的标识:通过设置PIVOT 关键字的INSIDE参数来实现,它产生的结果就是一个新的列表,让原表的列构成新记录的行,把原表的记录构成新表的列,完成一次表示格式的转变。

本文仅是对 MSSQL 中 Pivot 功能的粗略介绍,实际上在日常数据分析过程中,Pivot 除了能够满足一般基本的数据转换要求以外,还可以应用到具有多个不同类别的复杂场景中,比如对具有动态的数据范围的多维度数据分析等,实现分析效果十分显著。


数据运维技术 » 的功能MSSQL中利用Pivot实现数据转换的初探(mssql中pivot)