我们有一个历史表,其定义如下:
--ID (pk) -----------Object ID--------------Work ID--------date------
1 1111 AAAA 1/1/2010
2 1111 AAAA 1/2/2010
3 2222 BBBB 1/1/2010
4 3333 CCCC 1/1/2010
5 1111 DDDD 1/3/2010
我们需要最新的(基于日期的基于NOT ID的)行PER工作ID。请注意,对象ID可以包含多个工作ID,我们需要最新的EACH工作ID。
我们的结果集需要什么:
ID (pk) -----------Object ID--------------Work ID--------date------
2 1111 AAAA 1/2/2010
3 2222 BBBB 1/1/2010
4 3333 CCCC 1/1/2010
5 1111 DDDD 1/3/2010
思想/想法?
答案 0 :(得分:4)
SELECT *
FROM (
SELECT h.*,
ROW_NUMBER() OVER (PARTITION BY workID ORDER BY date DESC) AS rn
FROM history
)
WHERE rn = 1
答案 1 :(得分:0)
select * from your_table a where (a.date, a.work_id) in (select max(b.date), b.work_id from your_table b where a.work_id=b.work_id group by work_id)