如何删除SQL中的重复记录?[重复]

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (179)

这个问题在这里已有答案:

这是我原来的表:

预期表格:

我无法向表中添加新列。

提问于
用户回答回答于

您可以使用ie删除重复项ROW_NUMBER()

with duplicates as
(
    select
        *
        ,ROW_NUMBER() OVER (PARTITION BY FirstName, LastName, age ORDER BY FirstName) AS number
    from yourTable
)
delete 
from duplicates
where number > 1

每行number大于1的行都是重复的。

用户回答回答于

在没有PK的情况下,您需要某种方法来识别行。

我能想到的唯一方法是:

  1. 检索行的“行ID”,
  2. 然后选择一个作为每个非唯一行的“好的”,
  3. 最后删除所有其他的。

不过,我对这个解决方案并不积极。我认为这个答案可以帮助产生独特的行ID。我希望它有所帮助。

扫码关注云+社区

领取腾讯云代金券