Java教程

数据库分段分类统计

本文主要是介绍数据库分段分类统计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

分段分类统计,首先分类的话需要用case when 它的用法请大家去看看教程。
但是case when 只能统计单个数据。比如下面的例子。

有一个名为"信息表"中有"出生日期"的日期字段,按每10岁分段统计人数SQL如何写?
求年龄段 1-10 11-20 21-30 31- 40 41-50 51-60 61-70人数和?

用case when 的话。把sum放在 case when里面能够统计一个人在哪一个年龄阶段。
当第一个数据统计后就统计全部人数和了。
但是我要统计所有在这个年龄阶段的人数和。那么需要把sum放在case when的外面,统计每一种情况的总和:

SELECT  
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 1 AND 10 THEN 1 ELSE 0 END) AS '1-10',
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 11 AND 20 THEN 1 ELSE 0 END) AS '11-20', 
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END) AS '21-30', 
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS '31-40', 
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS '41-50', 
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 51 AND 60 THEN 1 ELSE 0 END) AS '51-60', 
SUM(CASE WHEN datediff(year, 出生日期, getdate()) BETWEEN 61 AND 70 THEN 1 ELSE 0 END) AS '61-70' 
FROM 信息表 

这样就是我们需要的结果了。

这篇关于数据库分段分类统计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!