年龄分段统计的问题有一个表中有 出生年月日的日期字段,按每10岁分段统计人数SQL如何写?年龄段 1-10 11-20 21-30 31- 40 41-50 51-60 .人数 ? ?我找到了一种方法.大家看看哪个更好?SELECT SUM
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 00:13:31
年龄分段统计的问题有一个表中有 出生年月日的日期字段,按每10岁分段统计人数SQL如何写?年龄段 1-10 11-20 21-30 31- 40 41-50 51-60 .人数 ? ?我找到了一种方法.大家看看哪个更好?SELECT SUM
年龄分段统计的问题
有一个表中有 出生年月日的日期字段,按每10岁分段统计人数SQL如何写?
年龄段 1-10 11-20 21-30 31- 40 41-50 51-60 .
人数 ? ?
我找到了一种方法.大家看看哪个更好?SELECT SUM(CASE WHEN datediff(year, 出生日期阴, getdate()) BETWEEN 16 AND 20 THEN 1 ELSE 0 END) AS '16-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 员工信息表
年龄分段统计的问题有一个表中有 出生年月日的日期字段,按每10岁分段统计人数SQL如何写?年龄段 1-10 11-20 21-30 31- 40 41-50 51-60 .人数 ? ?我找到了一种方法.大家看看哪个更好?SELECT SUM
select cast(f1*10+1 as varchar(3))+'-'+cast(f1*10+10 as varchar(3)) as 年龄段,f2 as 人数
from
(select datediff(d,出生日期,getdate())/365/10 as f1,count(*) as f2 from 表名 group by datediff(d,birth_day,getdate())/365/10) a
order by cast(f1*10+1 as varchar(3))+'-'+cast(f1*10+10 as varchar(3))