Postgres - 删除重复记录

时间:2018-05-31 01:56:31

标签: sql postgresql

我编写了一个查询来删除表中的重复记录。

DELETE e FROM
(
    SELECT *, ROW_NUMBER() OVER (PARTITION BY emp_id ORDER BY emp_id) AS rn
    FROM employee1
) e 
WHERE e.rn > 1

但我收到了这个错误

错误:“e”处或附近的语法错误 第1行:删除e FROM。

有人能帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有唯一的ID,请使用它。但是,如果不这样做,您可以使用ctid

delete from employee1 e
    where e.ctid > (select min(e.ctid) from employee1 e2 where e2.emp_id = e.emp_id);