oracle删除重复数据

--查询出所有有重复的数据
select s.year,s.oneday,count(*)
from SYS_CALENDAR s
group by s.year,s.oneday
having count(*)>1
order by s.year,s.oneday;

  

--删除重复数据
delete from SYS_CALENDAR a
 where (a.year, a.oneday) in (select s.year, s.oneday
                                from SYS_CALENDAR s
                               group by s.year, s.oneday
                              having count(*) > 1)
   and rowid not in (select min(rowid)
                       from SYS_CALENDAR
                      group by year, oneday
                     having count(*) > 1);

  

posted @ 2022-04-01 09:00  兰溪三日桃花雨  阅读(72)  评论(0编辑  收藏  举报