SQL分组后将不存在的组记为0

博客介绍了如何在SQL中处理分组统计时,确保不存在的数据区间也能显示为0。提供了三种解决方案,分别是:利用UNION和GROUP BY结合的方式,直接在COUNT函数中指定分组条件,以及创建临时表与原始结果进行连接操作。重点讲解了前两种推荐的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

最近遇到这么一个需求:统计区间在0-2000,2000-3000,3000-4000,4000-5000,5000+工资的人数。

快速开始

数据如下:

开始看到这个问题,想都没想就开始写了下面的代码:

SELECT case
	when salary < 2000 then '[0, 2000)'
	when salary >= 2000 and salary < 3000 then '[2000, 3000)'
    when salary >= 3000 and salary < 4000 then '[3000, 4000)'
 	when salary >= 4000 and salary < 5000 then '[4000, 5000)'
  	when salary >= 5000 then '[5000+)'
	 end c,COUNT(*)
FROM salary_list
GROUP BY c

执行结果:

但其实我们要的结果是

[0,2000]             0
[2000,3000)       3
[3000,4000)      &nb

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值