Mysql 为按某列排序的每个组获取一条记录
鉴于下表:Mysql 为按某列排序的每个组获取一条记录,mysql,Mysql,鉴于下表: id, country, name, age 1, Italy, Burke, 21 2, Italy, Yefrem, 20 3, Spain, Valter, 30 4, Spain, Max, 11 如何为每个国家获得一名最年长的公民 例如,结果应该只包含行1和3 结果应按国家分组,并且在每个组中,应返回年龄最大的条目使用内联视图筛选行,然后连接到表本身以返回所有列,如下所示: select t.id, t.country, t.name,
id, country, name, age
1, Italy, Burke, 21
2, Italy, Yefrem, 20
3, Spain, Valter, 30
4, Spain, Max, 11
如何为每个国家获得一名最年长的公民例如,结果应该只包含行
1
和3
结果应按国家分组,并且在每个组中,应返回年龄最大的条目使用内联视图筛选行,然后连接到表本身以返回所有列,如下所示:
select t.id, t.country, t.name, t.age
from test t
join (
select max(age) as age, country
from test
group by country
) s
on t.age = s.age and t.country = s.country;
此处测试: