按命名列分组

Mat*_*ick 1 mysql group-by count

我总是忘记如何做这样的事情.

我有一个带有生日的数据库表,我想知道有多少人有相同的年龄.

我尝试着:

SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( age ) 
FROM  person 
GROUP BY age
Run Code Online (Sandbox Code Playgroud)

但得到错误

"字段列表"中的未知列"年龄"

如何在命名列上执行分组操作?

eri*_*len 6

别名不能在group by子句中使用,也不能在选择列表的其他列中使用(是的,这很糟糕).

SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ))
FROM  person
GROUP BY TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) )
Run Code Online (Sandbox Code Playgroud)