SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择

时间:2023-03-09 23:40:47
SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择

==================================声明==================================

本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性。

未经作者同意请勿修改(包括本声明),保留法律追究的权利。

未经作者同意请勿用于学术性引用。

未经作者同意请勿用于商业出版、商业印刷、商业引用。

本文不定期修正完善,为保证内容正确,建议移步原文处阅读。

本文链接:http://www.cnblogs.com/wlsandwho/p/4423956.html

=======================================================================

看了好长时间的资料,总算是看懂了点。(另外怎样才能把右面的这个长毛的土豆去掉?---->                         对,就是它!)

赶紧记录下来。

=======================================================================

表格和数据。(和http://www.cnblogs.com/wlsandwho/p/4416222.html的相同)

 USE tempdb
GO
--------------------------------------------------------------------------
IF OBJECT_ID('Student','U') IS NOT NULL
DROP TABLE Student
GO CREATE TABLE Student
(
StuID NVARCHAR(8) PRIMARY KEY,
Name NVARCHAR(5),
EntranceTime DATETIME
)
GO INSERT INTO Student(StuID,Name,EntranceTime) VALUES('','Lily','2008-08-27')
INSERT INTO Student(StuID,Name,EntranceTime) VALUES('','Lucy','2009-08-26')
INSERT INTO Student(StuID,Name,EntranceTime) VALUES('','Jack','2007-08-28')
GO
--------------------------------------------------------------------------
IF OBJECT_ID('SltCourse','U') IS NOT NULL
DROP TABLE SltCourse
GO CREATE TABLE SltCourse --SelectiveCourse
(
ID INT PRIMARY KEY IDENTITY(1,1),
StuID NVARCHAR(8),
CourseName NVARCHAR(10),
Score INT
)
GO INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','电脑维修',90)
INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','剪纸',80)
INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','市场策划',95)
INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','信息检索',100) INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','插花',99)
INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','剪纸',96)
INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','刺绣',92) INSERT INTO SltCourse(StuID,CourseName,Score) VALUES('','插花',98)
GO

查看一下

 SELECT s.StuID,s.Name,s.EntranceTime,sc.CourseName,sc.Score FROM Student s,SltCourse sc WHERE s.stuid=sc.stuid
GO

SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择

=======================================================================

现在来看这个表格,前三列有很多数据是重复的,而且也不便于阅读。之前使用了row_number函数,这里使用下别的——PIVOT来实现一个行转列。

预期效果。

SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择

=======================================================================

静态版。这需要预知要转换成列名的数据。

 WITH ReportCard
AS(
SELECT s.StuID,s.Name,s.EntranceTime,sc.CourseName,sc.Score FROM Student s,SltCourse sc WHERE s.stuid=sc.stuid
)
SELECT * FROM ReportCard PIVOT(MAX(Score) FOR CourseName IN([电脑维修],[剪纸],[市场策划],[信息检索],[插花],[刺绣]) ) AS T
GO

结果。

aaarticlea/png;base64,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" alt="" />

当在第三行加上筛选语句时,可以得到指定的某一行。例如:

 WITH ReportCard
AS(
SELECT s.StuID,s.Name,s.EntranceTime,sc.CourseName,sc.Score FROM Student s,SltCourse sc WHERE s.stuid=sc.stuid AND s.StuID=''
)
SELECT * FROM ReportCard PIVOT(MAX(Score) FOR CourseName IN([电脑维修],[剪纸],[市场策划],[信息检索],[插花],[刺绣]) ) AS T
GO

结果。

aaarticlea/png;base64,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" alt="" />

=======================================================================

动态版。先查询出要转为列的行数据,然后设置格式,再拼接字符串。

 DECLARE @strCN NVARCHAR(100)
SELECT @strCN=ISNULL(@strCN+',','')+ QUOTENAME(CourseName) FROM SltCourse GROUP BY CourseName
--PRINT @DCN DECLARE @SqlStr NVARCHAR(1000)
SET @SqlStr='
WITH ReportCard
AS(
SELECT s.StuID,s.Name,s.EntranceTime,sc.CourseName,sc.Score FROM Student s,SltCourse sc WHERE s.stuid=sc.stuid
)
SELECT * FROM ReportCard PIVOT(MAX(Score) FOR CourseName IN('+@strCN+') ) AS T'
EXEC(@sqlstr)
GO

=======================================================================

题外话,关于PIVOT中聚合函数的使用。

我刚用TSQL不久,行转列都是汇总一些数值类型的数据,比方说,周一到周日的营业收入啦,数理化史地生成绩啦之类的。

这些数值类型的,选择聚合函数时,当然是需要什么选什么啦。

看例子。

 USE tempdb
GO IF OBJECT_ID('AggregateFuncTest1','U') IS NOT NULL
DROP TABLE AggregateFuncTest1
GO CREATE TABLE AggregateFuncTest1
(
ID INT IDENTITY(1,1) PRIMARY KEY,
DayOfWeek NVARCHAR(3),
Income INT
)
GO INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期一',100)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期二',200)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期三',300)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期四',400)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期五',500)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期六',600)
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期日',700)
GO
----------------------------------------------------------------------
SELECT DayOfWeek,Income FROM AggregateFuncTest1
GO
----------------------------------------------------------------------
WITH Rst AS
(
SELECT DayOfWeek,Income FROM AggregateFuncTest1
)
SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日] FROM Rst
PIVOT(AVG(Income) FOR DayOfWeek IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])) AS T
GO
----------------------------------------------------------------------
INSERT INTO AggregateFuncTest1(DayOfWeek,Income) VALUES('星期一',1000)
GO WITH Rst AS
(
SELECT DayOfWeek,Income FROM AggregateFuncTest1
)
SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日] FROM Rst
PIVOT(AVG(Income) FOR DayOfWeek IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])) AS T
GO
----------------------------------------------------------------------
DROP TABLE AggregateFuncTest1

结果:

aaarticlea/png;base64,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" alt="" />

只要看一看、运行一下就会发现,聚合函数的选择是根据需要来的。当我有2个星期一的入账时,由AVG函数的来的结果是不同的。

那么,求最大就是用Max,最小用Min,求和就是Sum,等等等等。没啥说的。

如果数据是字符类型呢?

再看例子。例如,办公室值日表。

 USE tempdb
GO IF OBJECT_ID('AggregateFuncTest2','U') IS NOT NULL
DROP TABLE AggregateFuncTest2
GO CREATE TABLE AggregateFuncTest2
(
ID INT IDENTITY(1,1) PRIMARY KEY,
DayOfWeek NVARCHAR(3),
Name NVARCHAR(10)
)
GO INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期一','Jack')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期二','Lucy')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期三','Lily')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期四','Bob')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期五','Angela')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期六','Bella')
INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期日','')
GO
------------------------------------------------------------------------
SELECT DayOfWeek,Name FROM AggregateFuncTest2
GO WITH Rst AS
(SELECT DayOfWeek,Name FROM AggregateFuncTest2)
SELECT * FROM Rst PIVOT (MAX(Name) FOR DayOfWeek IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]) ) AS PVT
------------------------------------------------------------------------
DROP TABLE AggregateFuncTest2

结果:

aaarticlea/png;base64,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" alt="" />

单个的数据可以用Max等函数来凑合使用,因为这些函数可以接受字符类型的参数。

但如果数据多了,不止一个的时候呢?例如,又来了一个同事,于是周六多了一个人,那就顺便大扫除吧。

 INSERT INTO AggregateFuncTest2(DayOfWeek,Name) VALUES('星期六','Alice')
GO
WITH Rst AS
(SELECT DayOfWeek,Name FROM AggregateFuncTest2)
SELECT * FROM Rst PIVOT (MAX(Name) FOR DayOfWeek IN ([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]) ) AS PVT
GO

结果:

aaarticlea/png;base64,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" alt="" />

Alice居然不用值日,这怎么行!怎能不给表现的机会?女汉子能顶一个天!

这种情况只能自己专门写一个聚合函数来拼接字符串了。(当然可以先拼接好字符串,再行转列。)

=======================================================================

用户自定义聚合函数好复杂,不写了。(其实是我还没搞懂这些呢,C#无爱。)