我总是忘记如何做这样的事情。
我有一个带有生日的数据库表,我想知道有多少人有相同的年龄。
我正在尝试:
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( age )
FROM person
GROUP BY age
但得到错误
“字段列表”中的未知列“年龄”
如何在命名列上执行分组?
答案 0 :(得分:6)
别名不能在group by子句中使用,也不能在选择列表的其他列中使用(是的,这很糟糕)。
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ))
FROM person
GROUP BY TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) )
答案 1 :(得分:0)
没关系,我想通了。
好的,我需要使用COUNT(*)
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( * )
FROM person
GROUP BY age