我有一张看起来像这样的表。
ID | Create Date
---+-------------------------
1 | 2007-06-12 15:44:10:000
1 | 2007-07-12 15:44:10:000
2 | 2007-06-12 15:44:10:000
2 | 2007-07-12 15:44:10:000
2 | 2007-08-12 15:44:10:000
3 | 2007-09-12 15:44:10:000
4 | 2012-06-12 15:44:10:000
5 | 2011-07-12 15:44:10:000
我需要保留max(createdate)
,同时删除所有其他行。我还需要保留ID为3,4,5的行。
任何帮助都会很棒。
注意:这有点抽象。实际的表有数百万个ID,它们有许多具有不同创建日期的重复ID
答案 0 :(得分:3)
您可以使用file_writer.writerow(['Paul','Mary'])
来识别具有最新日期的记录,并删除其余记录:
ROW_NUMBER()
答案 1 :(得分:0)
试试这个:
DELETE FROM table
WHERE ID NOT IN (SELECT ID FROM table
WHERE ID IN 3, 4, 5 OR ID = (SELECT ID FROM table as a
WHERE createdate = (SELECT MAX(createdate) FROM
table as b WHERE a.ID = b.ID)))