我是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
答案 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;