获取最新(日期)的一组组

时间:2016-07-14 23:38:00

标签: mysql sql

我的问题是,我坚持这个我想简单的问题。 现在2个晚上Grrr ...... 我创建了一个小例子来保持简单:

源表看起来像:某些obj具有一些随机状态。 可以通过插入新行来更改/更新这些状态。

Id | obj| status | date
---+----+--------+-----
1  | 1  | green  | 2013
2  | 1  | green  | 2014
3  | 1  | yellow | 2015
4  | 1  | orange | 2016 <- Last status of 1
5  | 2  | green  | 2013
6  | 2  | green  | 2014 <- Last status of 2
7  | 3  | green  | 2010
8  | 3  | red    | 2012 <- Last status of 3

我需要获得这样的输出:

obj| status | date
---+--------+-----
1  | orange | 2016
2  | green  | 2014
3  | red    | 2012

text:输出显示ech obj的最新状态。

我希望有人可以帮助我..

2 个答案:

答案 0 :(得分:0)

where子句中的简单相关子查询可以解决这个问题:

select obj, status, date
from t
where t.date = (select max(t2.date) from t t2 where t2.status = t.status);

答案 1 :(得分:0)

选择obj,状态,日期 从T 其中t.date =(从t t2选择max(t2.date),其中t2.Obj = t.Obj);