Sql 删除两个字段上重复的行

Sql 删除两个字段上重复的行,sql,database,postgresql,sql-delete,duplicate-data,Sql,Database,Postgresql,Sql Delete,Duplicate Data,我需要删除此表的重复值: +----+-------+-------------+---------+ | id | name | description | surname | +----+-------+-------------+---------+ | 1 | Peter | Member | Hitsh | | 2 | James | Member | Tach | | 3 | Mary | Member | Popims | | 4

我需要删除此表的重复值:

+----+-------+-------------+---------+
| id | name  | description | surname |
+----+-------+-------------+---------+
| 1  | Peter | Member      | Hitsh   |
| 2  | James | Member      | Tach    |
| 3  | Mary  | Member      | Popims  |
| 4  | Peter | Member      | Hitsh   |
+----+-------+-------------+---------+

我希望删除所有具有相同
名称
姓氏
的重复值,以便为
(名称,姓氏)
上的每组重复项保留具有最小
id的行

假设
id
是唯一的

今天的问题非常相似:

那么您的意思是每套副本保留一行?哪一个?
DELETE FROM tbl
USING (
   SELECT id, row_number OVER (PARTITION BY name, surname ORDER BY id) As rn
   FROM   tbl
   ) del
WHERE  tbl.id = del.id
AND    del.rn > 1;