我的问题是,我坚持这个我想简单的问题。 现在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的最新状态。
我希望有人可以帮助我..
答案 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);