sql - Oracle中删除表中的重复行

标签 sql oracle duplicates delete-row

我正在 Oracle 中测试某些内容,并使用一些示例数据填充表,但在此过程中我不小心加载了重复记录,因此现在我无法使用某些列创建主键。

如何删除所有重复行并只保留其中一个?

最佳答案

使用rowid伪列。

DELETE FROM your_table
WHERE rowid not in
(SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3);

其中,column1column2column3 构成每条记录的标识键。您可以列出所有列。

关于sql - Oracle中删除表中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529098/

相关文章:

mysql - 如何从 MySQL 中选择行而不包含跨两列的重复项

oracle - ORA-02303 : cannot drop or replace a type with type or table dependents

oracle - 在 oracle 中格式化(或提供字符串)异常消息

sql - PostgreSQL 中使用多个条件的复杂重复数据删除

sql - 何时触发 AFTER DELETE 触发器

sql - 哈希连接与嵌套循环

mysql - sql 中的两个计数,但在不同的列中

c - ORA-01031 : insufficient privileges on insert

string - 我们如何计算 MATLAB 元胞数组中特定字符串的起始和结束索引?

python - pandas重复记录查找相同和不同的列