Oracle数据库删除重复数据(保留一条)
如何在oracle数据库中删除重复数据?
- 表:DWGCHF_ZJB 判断是否重复标识:检验批编号
- 首先进行检验批编号进行分组,筛选出cout(检验批编号)>1的数据
- 然后根据函数最小值min(rowid)进行检验批编号分组,并且用count(*)>1去反选,把两个条件结合起来就可以删除重复的数据,且保留重复数据的源数据。
delete from DWGCHF_ZJB where 检验批编号 in (select 检验批编号 from DWGCHF_ZJB group by 检验批编号 having count(检验批编号)>1 ) and rowid not in (select min(rowid) from DWGCHF_ZJB group by 检验批编号 having count(*)> 1);