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