我有一个三列表格:KEY
、VALUE
和LAST_UPDATED
存在重复的VALUE
字段。我想要删除所有与其他行具有相同VALUE
,除非是最近更新的那一行。
因此,如果表格包含以下行:
1, "A", 2013-11-08
2, "B", 2013-10-30
3, "A", 2013-11-07
4, "A", 2013-11-01
5, "B", 2013-11-01
我希望只保留这些行:
1, "A", 2013-11-08
5, "B", 2013-11-01
你如何在SQL中实现这个功能呢?我想DELETE FROM table WHERE key IN (SELECT key FROM table GROUP BY value HAVING count(*)>1)
可以删除重复值中的任意一行,但是如何使其删除除最近更新的行之外的所有行呢?
row_number() over(partition by order by LAST_UPDATED desc)
来实现。尝试在 MYSQL 中采用类似的方法。 - Prahalad GaggarLAST_UPDATED
列 - Will