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;
此处测试: