Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Postgres-删除重复记录_Sql_Postgresql - Fatal编程技术网

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。