SQL中的case when语法

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的相关用法,更多内容敬请期待!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值