1

我得到了一个形式的 SQL 表:-

Name     Age
Kim       5
Tom       8
Jim       12
Kim       5
David     21
Jim       12

在上述场景中,Kim 和 Jim 是重复的,它们存在两次。

如果我有一个上述表格的大表,大约有 60000 个条目,我如何编写一个 sql 查询来只删除重复项但仍然保留唯一的?

4

1 回答 1

3

借助Common Table ExpressionWindow 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
于 2013-03-15T05:46:07.640 回答