SQL Server数据库通过身份证号获取年龄段分布

 使用sql语句获取表中存储数据的年龄分布

该表存储数据为基本信息,包含身份证号,但没有存储年龄的字段(考虑到年龄在变化)

该SQL为了获取用户的年龄分布

SELECT 
  SUM(CASE WHEN age <=18 Then 1 ELSE 0 END) as '未成年'
, SUM(CASE WHEN age BETWEEN 19 AND 35 THEN 1 ELSE 0 END ) as '青年'
, SUM(CASE WHEN age BETWEEN 36 AND 60 THEN 1 ELSE 0 END) as '中年'
, SUM(CASE WHEN age >60 THEN 1 ELSE 0 END) as '老年' 
FROM(
SELECT  YEAR(GETDATE())-SUBSTRING (身份证号的字段, 7,4) as age from 表名)) as a 

查出来的结果如下图

猜你喜欢

转载自blog.csdn.net/weixin_47035997/article/details/127098941