从MYSQL中的每个组中选择最后一个条目

时间:2017-08-16 07:58:56

标签: mysql greatest-n-per-group

我是MySQL的新手(我尝试过groupby,但没有得到结果)这是我的样本数据

ticket year status data
111    2007 1      32
111    2007 2      46
111    2007 3      40
111    2007 4      38
111    2009 1      15
111    2009 2      12
115    2009 1      2 
115    2009 2      5

我想为每个公司选择每年的最后一个条目。输出应该是:

ticket year status data
111    2007 4      38 
111    2009 2      12
115    2009 2      5

1 个答案:

答案 0 :(得分:0)

因为状态字段值看起来是增量顺序。我们可以简单地在groupby之后应用max。

select a.* from a 
inner join (select ticket,year,max(status) as sta from a group by ticket,year) as b 
on a.status=b.sta 
and a.ticket=b.ticket and a.year=b.year;