為什麽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
2 b 3000 3500 4200 5500*/
順帶寫一下:
PIVOT的 語法規則
pivot (
聚合函數(列名)
for
被轉換的列名
in
(要顯示出來的列名)
) k
這裏的聚合函數可以使sum,也可以是max等。你懂了嗎?沒看懂的話,不用再搜索了,再仔細看看,這裏就是你要找的
為什麽pivot函數為什麽要用sum。