mysql根据出生日期统计年龄段

来源:互联网 发布:七政四余软件下载 编辑:程序博客网 时间:2024/04/28 10:34
select nnd as '年龄段',count(*) as '人数' from(  
 select   
 case  
  when (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )<20 then '20以下'  
  when (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )>=20 and (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )<30 then '20-30'  
  when (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )>=30 and (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )<40 then '30-40'  
  when (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )>=40 and (year(now())-year(birthday)-1) + ( DATE_FORMAT(birthday, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') )<50 then '40-50'   
 end   
 as nnd from td_lz_leader 
)a group by nnd;
0 0