我总是忘记如何做这样的事情。
我有一个包含生日的数据库表,我想找出有多少人具有相同的年龄。
我正在尝试:
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( age )
FROM person
GROUP BY age
但是报错
Unknown column 'age' in 'field list'
如何对命名列进行分组?
最佳答案
别名不能用在 group by 子句中,也不能用在选择列表的其他列中(是的,这很糟糕)。
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ))
FROM person
GROUP BY TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) )
关于mysql - 按命名列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703097/