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