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

在Oracle中从表中删除重复行

在Oracle中从表中删除重复行

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

3 回答

?
慕哥9229398

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

使用rowid假瘤。

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

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



查看完整回答
反对 回复 2019-10-14
?
温温酱

TA贡献1752条经验 获得超4个赞

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-10-14
  • 3 回答
  • 0 关注
  • 564 浏览
慕课专栏
更多

添加回答

举报

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