我有下表:
=====================
RecNum ID Date
=====================
12345 188832 2045-01-07
33445 188832 2035-10-01
66789 188849 2047-10-18
77889 340520 2047-04-28
99776 340520 2047-04-28
=====================
我需要生成一个新表,其中只有一个ID与最新日期相对应。
如您所见,ID 188832有两个日期:2045-01-07和2035-10-01。 我只需要最新的一个:2045-01-07。
188849只有一个日期,应该保持原样。 340520有两个具有相同日期的记录-我只需要选择一个。
RecNum是唯一的。
答案 0 :(得分:1)
ROW_NUMBER
应该在这里工作:
SELECT RecNum, ID, Date
FROM
(
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Date DESC) rn
FROM yourTable t
) t
WHERE rn = 1;
请注意,在ID = 340520
的情况下,以上查询将任意选择两个记录之一。如果您有确定如何处理此类联系的逻辑,则可以修改查询。