mysql - 按命名列分组

标签 mysql count group-by

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

我有一个包含生日的数据库表,我想找出有多少人具有相同的年龄。

我正在尝试:

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/

相关文章:

mysql - 如何将两个不同的ID连接到另一个表中?

java - SQL 订单字符串主键

MySQL日期查询只返回一年,当存在多个时

r - 如何只选择 R 中每个组的第一个非 NA 值?

MySQL 将行输出单元格转换为列

python - Pandas 如何根据一列中的值在多行中添加值

mysql - SQL 连接与子查询

mysql - 多主键表中的Select查询

mysql - 求和和计数查询的正确语法

mySQL SUM 和 COUNT 问题,连接上的一些值加倍