SQL对取值范围进行分组汇总

SQL对取值范围进行分组汇总

实例

表示例
假设现在有这么两个表,要做关联查询,查询出每个乡镇每个年龄段的driver有多少个,该怎么写sql语句?
查询结果示例
查询出结果是这种的 。
那么sql应该怎么写呢

接下来一段漂亮的代码片

----SQL server数据库环境

SELECT 
[town_name],
COUNT(CASE WHEN NL BETWEEN 1 AND 5 THEN NL END) AS '1~5年',
COUNT(CASE WHEN NL BETWEEN 5 AND 10 THEN NL END) AS '5~10年',
COUNT(CASE WHEN NL BETWEEN 10 AND 15 THEN NL END) AS '10~15年'
FROM 
(SELECT driving_yerars NL,[town_name] FROM [driver] a JOIN [town] b on a.[company_id]=b.[id]) 
A 
group by [town_name]

----忽略这一段哈

select 
case 
when driving_yerars>=1 and driving_yerars <5 then 1 
when driving_yerars>=5 and driving_yerars <10 then 2
when driving_yerars>=10 and driving_yerars <15 then 3 
else 0 
end as 年区间 ,
count(*) as 数量, [company_id] as 乡镇
from [driver]

group by
case 
when driving_yerars>=1 and driving_yerars <5 then 1
when driving_yerars>=5 and driving_yerars <10 then 2
when driving_yerars>=10 and driving_yerars <15 then 3
else 0 end,[company_id]

查询结果示例

 查询结果
??

本文写作时参考文章链接

SQL如何根据指定列的不同值区间分段,如人员表按年龄段区分 - Haibing的博客 - 优快云博客
https://blog.youkuaiyun.com/chenghaibing2008/article/details/46632509/

怎样用数据库sql server对数值型数据进行分组? - 数据分析秦翼臣 - 优快云博客
https://blog.youkuaiyun.com/qq_35990702/article/details/82313939

sqlserver: 范围分组查询(group by, case) - GUITK的专栏 - 优快云博客
https://blog.youkuaiyun.com/GUITK/article/details/8270806

SQL对取值范围进行分组汇总的几种办法 - l1t的专栏 - 优快云博客
https://blog.youkuaiyun.com/l1t/article/details/2883496

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马全鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值