码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-26 17:43:11      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:create   函数   name   profile   char   div   line   聚合函数   聚合   

问:

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。

标签:create   函数   name   profile   char   div   line   聚合函数   聚合   

原文地址:https://www.cnblogs.com/liuhuahua/p/9857200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!