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

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

  • SQL对取值范围进行分组汇总
    • 实例
    • 接下来一段漂亮的代码片
    • 查询结果示例
    • 本文写作时参考文章链接

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

实例

SQL对取值范围进行分组汇总_第1张图片
假设现在有这么两个表,要做关联查询,查询出每个乡镇每个年龄段的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的博客 - CSDN博客
https://blog.csdn.net/chenghaibing2008/article/details/46632509/

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

sqlserver: 范围分组查询(group by, case) - GUITK的专栏 - CSDN博客
https://blog.csdn.net/GUITK/article/details/8270806

SQL对取值范围进行分组汇总的几种办法 - l1t的专栏 - CSDN博客
https://blog.csdn.net/l1t/article/details/2883496

你可能感兴趣的:(走在学习的路上)