使用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
查出来的结果如下图