一道SQL面試題(行列互換)
阿新 • • 發佈:2019-02-15
有一個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 年;