为了账号安全,请及时绑定邮箱和手机立即绑定

在Oracle中从表中删除重复行

在Oracle中从表中删除重复行

浮云间 2019-07-15 10:26:22
在Oracle中从表中删除重复行我正在Oracle中测试一些内容,并使用一些示例数据填充了一个表,但是在这个过程中,我意外地加载了重复记录,所以现在我无法使用其中的一些列创建主键。如何删除所有重复行而只保留其中一个行?
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

使用rowid假瘤。

DELETE FROM your_tableWHERE rowid not in(SELECT MIN(rowid)FROM your_tableGROUP BY column1, column2, column3);

哪里column1column2,和column3为每个记录设置标识键。您可以列出所有的列。


查看完整回答
反对 回复 2019-07-15
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

delete from t where rowid IN ( select rid                    from (select rowid rid, 
                                 row_number() over (partition by 
                         companyid, agentid, class , status, terminationdate                                  
                          order by rowid) rn                            from t)
                   where rn <> 1);

(修正了缺失的括号)


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 725 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信