为什么pivot函数为什么要用sum。

Posted liuhuahua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么pivot函数为什么要用sum。相关的知识,希望对你有一定的参考价值。

问:

create table test(id int,name varchar(20),quarter int,profile int) 
insert into test values(1,‘a‘,1,1000)
insert into test values(1,‘a‘,2,2000)
insert into test values(1,‘a‘,3,4000)
insert into test values(1,‘a‘,4,5000)
insert into test values(2,‘b‘,1,3000)
insert into test values(2,‘b‘,2,3500)
insert into test values(2,‘b‘,3,4200)
insert into test values(2,‘b‘,4,5500)

select* from test

select id,name,
[1] as "一季度",
[2] as "二季度",
[3] as "三季度",
[4] as "四季度"
from
test
pivot
(
sum(profile)
for quarter in
([1],[2],[3],[4])
)
as pvt

我想问大家这段SQL代码,为什么pivot函数为什么要用sum,它不是求和吗?

答:(一定仔细看下面红字,答案就在其中)

 

create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,‘a‘,1,1000)
insert into test values(1,‘a‘,2,2000)
insert into test values(1,‘a‘,2,5000)--看这里
insert into test values(1,‘a‘,3,4000)
insert into test values(1,‘a‘,4,5000)
insert into test values(2,‘b‘,1,3000)
insert into test values(2,‘b‘,2,3500)
insert into test values(2,‘b‘,3,4200)
insert into test values(2,‘b‘,4,5500)

 

select* from test

 

select id,name,
[1] as "一季度",
[2] as "二季度",
[3] as "三季度",
[4] as "四季度"
from
test
pivot
(
sum(profile)
for quarter in
([1],[2],[3],[4])
)
as pvt

 

/*
id name 一季度     二季度                             三季度 四季度
----------- -------------------- ----------- ----------- ----------- -----------
1    a      1000        7000 (7000这里汇总了)  4000 5000
2    b       3000       3500                               4200 5500*/

 

顺带写一下:
PIVOT的 语法规则
pivot (聚合函数(列名) for 被转换的列名 in(要显示出来的列名)) k
这里的聚合函数可以使sum,也可以是max等。你懂了吗?没看懂的话,不用再搜索了,再仔细看看,这里就是你要找的

 






















































以上是关于为什么pivot函数为什么要用sum。的主要内容,如果未能解决你的问题,请参考以下文章

PIVOT 行列转置函数的使用

PIVOT:行转列函数

PIVOT使用

oracle pivot 和 unpivot 函数的使用

sqlServer PIVOT函数求解

使用pivot使用两个聚合函数