Mysql 如何按组选择最大值和最大值计数
我有一个表,其中我必须按姓名和性别计算(计算最大值)组的最大值和计数Mysql 如何按组选择最大值和最大值计数,mysql,Mysql,我有一个表,其中我必须按姓名和性别计算(计算最大值)组的最大值和计数 sample input: name sex age A F 2 A F 3 A M 4 B F 6 B M 7 B M 7 B F 4 C M 8 C M 8 C M 8 C M 3 C F 1 C F 10 C F 10
sample input:
name sex age
A F 2
A F 3
A M 4
B F 6
B M 7
B M 7
B F 4
C M 8
C M 8
C M 8
C M 3
C F 1
C F 10
C F 10
Sample Output:
name sex max_age count_max_age
A F 3 1
A M 4 1
B F 6 1
B M 7 2
C F 10 2
C M 8 3
我试过了
select name,sex,max(age) as max_age , count(max_age) from table_1 group by name ,sex
我犯了一个错误
Unknown column max_age in fieldlist
请建议上述查询中需要的任何修改。提前谢谢
SELECT count(max_age), name, sex FROM (
SELECT name, sex, max(age) as max_age from table_1 group by name, sex
) as max_age_group group by name, sex
查询将无法理解同一级别上的别名,但是您可以将其作为子查询。使用子查询并按如下方式连接
select
t1.name, t1.sex, max_age, count(max_age) as countofmaxage
from
(select name, sex, max(age) as max_age
from t
group by name, sex) t1
join
t on t1.name = t.name and t1.sex = t.sex and t1.max_age = t.age
group by
t1.name, t1.sex, max_age
输出:
name sex max_age countofmaxage
----------------------------------
A F 3 1
A M 4 1
B F 6 1
B M 7 2
C F 10 2
C M 8 3
在您的问题中添加表结构帮助我们帮助您-请共享表的结构、一些示例数据以及您试图获得的结果。我觉得您的查询很好。您应该添加一些输入和输出数据。实际上,我怀疑上面的查询是什么导致了这个错误。请看:我已经共享了示例输入和输出表的