admin

从小表中删除重复行

sql

我在 PostgreSQL 8.3.8 数据库中有一个表,它没有键/约束,并且有多行具有完全相同的值。

我想删除所有重复项,每行只保留 ​​1 个副本。

特别有一个列(名为“key”)可用于识别重复项,即每个不同的“key”应该只存在一个条目。

我怎样才能做到这一点?(理想情况下,使用单个 SQL 命令。)
在这种情况下(只有几行)速度不是问题。


阅读 155

收藏
2021-07-01

共1个答案

admin

DELETE FROM dupes a
WHERE a.ctid <> (SELECT min(b.ctid)
                 FROM   dupes b
                 WHERE  a.key = b.key);
2021-07-01