1. 程式人生 > >為什麽pivot函數為什麽要用sum。

為什麽pivot函數為什麽要用sum。

art nbsp clas name 匯總 法規 什麽 create arc

問:

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。