一道SQL面试题(行列互换)

来源:互联网 发布:苏宁scs软件 编辑:程序博客网 时间:2024/06/07 11:00

有一个SQL题在面试中出现的概率极高,最近有学生出去面试仍然会遇到这样的题目,在这里跟大家分享一下。

题目:数据库中有一张如下所示的表,表名为sales。

年季度销售量19911111991212199131319914141992121199222219923231992424



要求:写一个SQL语句查询出如下所示的结果。

年一季度二季度三季度四季度199111121314199221222324



我给出的答案是这样的:

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 年;