【问题标题】:Find count, by age, of everyone in database按年龄查找数据库中每个人的计数
【发布时间】:2019-05-19 15:06:51
【问题描述】:

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

我想查询数据库并了解我的成员的年龄。我很想看看我在数据库中每个年龄有多少成员。所以我喜欢这样的输出:

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

我该怎么做? (我很想在 MySQL 中完成这一切,但如果更简单,我们可以添加一些 PHP、Perl 或 Python)

【问题讨论】:

  • 对于那些投票否决或投票关闭它的人 - 为什么要投反对票?这似乎完全是一个完美的stackoverflow问题......明确的问题,一个明确的答案,不是主观的等等......??我很想知道为什么这会引起仇恨。

标签: mysql


【解决方案1】:

你可以使用

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 ;

【讨论】:

    【解决方案2】:

    如果您也想考虑闰年,请尝试以下操作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      相关资源
      最近更新 更多