bug_id ops_status partition_date
32307107 ARCHIVED 2017-04-14
32307107 ARCHIVED 2017-04-13
32307107 ARCHIVED 2017-04-12
32307107 ARCHIVED 2017-04-11
32307107 ARCHIVED 2017-04-10
32307107 ARCHIVED 2017-04-09
32307107 ARCHIVED 2017-04-08
32307107 ARCHIVED 2017-04-07
32307107 ARCHIVED 2017-04-06
32307107 PREPUBLISH 2017-04-05
32307107 PREPUBLISH 2017-04-04
32307107 PREPUBLISH 2017-04-03
32307107 PREPUBLISH 2017-04-02
32307107 PREPUBLISH 2017-04-01
32307107 ARCHIVED 2017-03-31
32307107 ARCHIVED 2017-03-30
32307107 ARCHIVED 2017-03-29
32307107 ARCHIVED 2017-03-28
32307107 ARCHIVED 2017-03-27
32307107 ARCHIVED 2017-03-26
我需要最后一个ops_status,即ARCHIVED,当它被更新时,即" 2017-04-06" - 所以上面数据中的"32307107 ARCHIVED 2017-04-06"
行。有人可以帮帮我吗。
答案 0 :(得分:0)
select bug_id, ops_status, max(partition_date)
from table1
where ops_status = 'ARCHIVED'
group by bug_id,ops_status
这是在SQL-Server
中答案 1 :(得分:0)
如果我理解正确,您需要第一个状态更改为"已存档"对于bug_id。为此,您可以使用子查询来获取未归档的最新日期。在主查询中,您可以使用MIN查找最早的存档日期。
SELECT bug_id, ops_status, MIN(partition_date)
FROM yourTable AS a
WHERE a.partition_date >
(SELECT MAX(partition_date)
FROM yourTable AS b
WHERE b.status = 'PREPUBLISH'
AND a.bug_id = b.bug_id)