1. 程式人生 > >一道SQL面試題(行列互換)

一道SQL面試題(行列互換)

有一個SQL題在面試中出現的概率極高,最近有學生出去面試仍然會遇到這樣的題目,在這裡跟大家分享一下。

題目:資料庫中有一張如下所示的表,表名為sales。

季度 銷售量
1991 1 11
1991 2 12
1991 3 13
1991 4 14
1992 1 21
1992 2 22
1992 3 23
1992 4 24



要求:寫一個SQL語句查詢出如下所示的結果。

一季度 二季度 三季度 四季度
1991 11 12 13 14
1992 21 22 23 24



我給出的答案是這樣的:

select 年, 
sum(case when 季度=1 then 銷售量 else 0 end) as 一季度, 
sum(case when 季度=2 then 銷售量 else 0 end) as 二季度, 
sum(case when 季度=3 then 銷售量 else 0 end) as 三季度, 
sum(case when 季度=4 then 銷售量 else 0 end) as 四季度 
from sales group by
年;