Mysql出生日期转换为年龄并分组统计人数的方法

本文通过分析用户表中生日数据,将用户划分为不同年龄段,并展示了各年龄段的人数统计。了解各年龄段用户的活跃特征,为精准营销提供数据支持。

SELECT 
  t.age AS userAge,
  t.num AS num 
FROM
  (SELECT 
    CASE
      WHEN u.age >= 18 AND u.age < 25 THEN '[18,24]' 
      WHEN u.age >= 25 ND u.age < 30 THEN '[25,29]' 
      WHEN u.age >= 30 AND u.age < 35 THEN '[30,34]' 
      WHEN u.age >= 35 AND u.age < 40 THEN '[35,39]' 
      WHEN u.age >= 40 AND u.age < 45 THEN '[40,44]' 
      WHEN u.age >= 45 AND u.age < 50 THEN '[45,49]' 
      WHEN u.age >= 50 THEN '50+' 
      ELSE '未知' 
    END AS age,
    COUNT(1) AS num 
  FROM
    (SELECT 
      TIMESTAMPDIFF(YEAR, birthday, CURDATE()) AS age 
    FROM
      `user_info`) u 
  GROUP BY 
    CASE
      WHEN u.age >= 18 AND u.age < 25 THEN '[18,24]' 
      WHEN u.age >= 25 ND u.age < 30 THEN '[25,29]' 
      WHEN u.age >= 30 AND u.age < 35 THEN '[30,34]' 
      WHEN u.age >= 35 AND u.age < 40 THEN '[35,39]' 
      WHEN u.age >= 40 AND u.age < 45 THEN '[40,44]' 
      WHEN u.age >= 45 AND u.age < 50 THEN '[45,49]' 
      WHEN u.age >= 50 THEN '50+' 
      ELSE '未知' 
    END) t 
ORDER BY t.num DESC 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值