我有一个表格的SQL表: -
Name Age
Kim 5
Tom 8
Jim 12
Kim 5
David 21
Jim 12
在上面的场景中,Kim和Jim是重复的,他们存在两次。
如果我有一个上面表格的大表,有大约60000个条目,我如何编写一个sql查询只删除重复项但仍然保留唯一的?
答案 0 :(得分:3)
在Common Table Expression
和Window Function
的帮助下,您可以轻松删除重复记录。
WITH dups
AS
(
SELECT Name, Age,
ROW_NUMBER() OVER (PARTITION BY Name, Age ORDER BY Age DESC) rn
FROM TableName
)
DELETE FROM dups
WHERE rn > 1