鉴于下表:
id, country, name, age
1, Italy, Burke, 21
2, Italy, Yefrem, 20
3, Spain, Valter, 30
4, Spain, Max, 11
我怎样才能为每个国家找到一个最老的公民
例如,结果应仅包含行1
和3
结果应按国家/地区分组,并且每个组中应返回年龄最大的条目
答案 0 :(得分:2)
使用内联视图过滤行,然后连接到表本身以获取所有列,如下所示:
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;