【发布时间】:2010-12-14 18:10:03
【问题描述】:
我总是忘记如何做这样的事情。
我有一个包含生日的数据库表,我想知道有多少人有相同的年龄。
我正在尝试:
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( age )
FROM person
GROUP BY age
但得到错误
“字段列表”中的未知列“年龄”
如何对命名列进行分组?
【问题讨论】:
我总是忘记如何做这样的事情。
我有一个包含生日的数据库表,我想知道有多少人有相同的年龄。
我正在尝试:
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( age )
FROM person
GROUP BY age
但得到错误
“字段列表”中的未知列“年龄”
如何对命名列进行分组?
【问题讨论】:
别名不能用于 group by 子句,也不能用于选择列表中的其他列(是的,这很糟糕)。
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ))
FROM person
GROUP BY TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) )
【讨论】:
没关系,我想通了。
好的,我需要使用COUNT(*)
SELECT TIMESTAMPDIFF( YEAR, birthdate, CURDATE( ) ) AS age, COUNT( * )
FROM person
GROUP BY age
【讨论】: