SQL中的case when语法
程序员文章站
2024-03-12 20:27:20
...
SQL中case when的应用案例
本案例分析结构如下:
- case when案例问题的描述
- case when的主要应用场景
- 实际SQL代码
一:实际案例介绍
- 描述:有一个sales表,该表为不同细分市场逐月的销量表,字段为细分级别、日期、数量、车型,其中细分级别为汽车市场的细分市场,日期为字符串类型的月度数据(201801),车型为该细分市场的相关车型,数量为该车型该月度的销量。
- 分析:该案例是一个典型的聚合统计的例子,首先想到的是应用
group by
语句对细分市场进行分组,然后需要解决的问题就是分月统计,这就需要应用case when语句了。
二:case when的主要应用场景
- 场景一:首先,case when可以应用在分类命名问题中,例如在汽车销量中对销量进行分类,单月销量小于3000台的为不及格,单月销量在3000-5000台的为一般,单月销量在5000-10000台的为较好,单月销量在10000台以上的为优秀,case when就可以在这种场景中进行应用;
- 场景二:其次,case when还可以与聚合函数一起,应用在分类统计方面,例如在汽车销量表中对销量进行分细分市场分月统计。
三:SQL代码
- 场景一的解决思路:
select 车型, 日期,
(case when 数量 < 3000 then '不及格'
when 数量 >= 3000 and 数量 < 5000 then '一般'
when 数量 >= 5000 and 数量 < 10000 then '较好'
when 数量 >= 10000 then '优秀'
end) from sales
limit 10;
- 场景二的解决思路:
select 细分市场,
sum(case when 日期 = '201810' then 数量 end) `201810月`,
sum(case when 日期 = '201811' then 数量 end) `201811月`,
sum(case when 日期 = '201812' then 数量 end) `201812月`
from sales
where 细分市场 <> 'Null'
group by 细分市场;
以上就是case when的相关用法,更多内容敬请期待!
上一篇: 搭建一个属于自己的博客(Hexo + GitHub)
下一篇: Seam操作EL表達式