按年龄查找数据库中人员数量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

我有一个包含数千个成员记录的MySQL数据库。每个人都有一个生日,这是一个简单的字符串,如“2005-11-01”(yyyy-mm-dd)

我想查询数据库并了解我的成员的年龄。我很想看看我在每个年龄段有多少成员。所以我喜欢一些输出,如:

age         count
---         -----
18          619
19          1321
20          15112
etc.

我怎样才能做到这一点?(我喜欢在MySQL中完成所有操作,我们如果添加一些PHP,Perl或Python是不是更容易)

提问于
用户回答回答于

如果你也想计算闰年,试试这样的事情:

SELECT 
YEAR(CURDATE())-YEAR(DOB) - (DATE_FORMAT(CURDATE(),'%M%D') < DATE_FORMAT(DOB,'%M%D')) `AGE`,
COUNT(*) `COUNT`
FROM YOURTABLE
GROUP BY AGE;
用户回答回答于

你应该用

SELECT TIMESTAMPDIFF(YEAR, '2005-11-01', CURDATE()) AS age , count(*) 
FROM my_table 
group by age ;

SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) AS age , count(*) 
FROM my_table 
group by age ;

扫码关注云+社区

领取腾讯云代金券