我在 PostgreSQL 8.3.8 数据库中有一个表,它没有键/约束,并且有多行具有完全相同的值。
我想删除所有重复项,每行只保留 1 个副本。
特别有一个列(名为“key”)可用于识别重复项,即每个不同的“key”应该只存在一个条目。
我怎样才能做到这一点?(理想情况下,使用单个 SQL 命令。) 在这种情况下(只有几行)速度不是问题。
DELETE FROM dupes a WHERE a.ctid <> (SELECT min(b.ctid) FROM dupes b WHERE a.key = b.key);