Select 一行按 max(year) 并按名称分组,但结果集中还包括其他值

Select a row by max(year) and group by name, but also include other values in the result set

我对 table 中的特定选择有疑问。 In 想找到所有按姓名分组且年份最长的人。但我还需要结果集中的其他列,以便稍后加入。

另外,id是无序的,不能用在聚合函数中。查询应该与数据库无关。

这里是 Table:

这是我需要的结果:

你可以尝试下面-使用相关子查询

select * from tablename a
where year = (select max(year) from tablename b a.name=b.name)
select x.* from tbl x
join (select name, max(year) max_year from tbl group by name) y
on x.name = y.name and x.year = y.max_year