sql - 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。
有人能帮我吗。谢谢!
解决方案
如果您有唯一的 ID,请使用它。但是,如果你不这样做,你可以使用ctid
:
delete from employee1 e
where e.ctid > (select min(e.ctid) from employee1 e2 where e2.emp_id = e.emp_id);
推荐阅读
- java - 对象映射器无法序列化对象类的引用
- machine-learning - 当你在不同的类中有不同数量的数据时该怎么办?
- python - 模型更改时 Django-channels 发送消息
- ios - Flutter iOS App 在 Xcode 中崩溃,添加 FirebaseApp.configure() 以实现 Firebase 集成
- reactjs - React-native 使用灯箱弹出图像
- python - 如何循环数据框列以迭代地对数据框进行排序
- c# - Unity,如何仅更改 GameObject 矩形变换的“顶部”
- regex - 正则表达式捕获 CSV 文件中的单元格
- firebase - Flutter:Firebase Auth 无限循环
- php - 如何使用 eloquent 在内部选择带有左连接的子查询?