Sql Postgres-删除重复记录
我编写了一个查询来删除表中的重复记录Sql Postgres-删除重复记录,sql,postgresql,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 有人能帮我吗。谢谢大家! 如果你有一个唯一的id,那么就使用它。但是,如果您不这样做,您可以使用ctid: delet
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
有人能帮我吗。谢谢大家! 如果你有一个唯一的id,那么就使用它。但是,如果您不这样做,您可以使用
ctid
:
delete from employee1 e
where e.ctid > (select min(e.ctid) from employee1 e2 where e2.emp_id = e.emp_id);
没有。我没有唯一的id,因此无法使用MIN。我的样本数据emp_id=E1、E2、E3、E4、E2、E1、E2、E5。我只需要查看emp_id=E1、E2、E3、E4、E5。