首页 > 解决方案 > Postgres - 删除重复记录

问题描述

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

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。

有人能帮我吗。谢谢!

标签: sqlpostgresql

解决方案


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

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

推荐阅读