標籤: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。