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
我对 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