Removing duplicate rows from table in Oracle

前端 未结 22 1797
醉话见心
醉话见心 2020-11-22 12:57

I\'m testing something in Oracle and populated a table with some sample data, but in the process I accidentally loaded duplicate records, so now I can\'t create a primary ke

22条回答
  •  余生分开走
    2020-11-22 13:14

    1. solution

    delete from emp
        where rowid not in
        (select max(rowid) from emp group by empno);
    

    2. sloution

    delete from emp where rowid in
                   (
                     select rid from
                      (
                        select rowid rid,
                          row_number() over(partition by empno order by empno) rn
                          from emp
                      )
                    where rn > 1
                   );
    

    3.solution

    delete from emp e1
             where rowid not in
              (select max(rowid) from emp e2
               where e1.empno = e2.empno ); 
    

    4. solution

     delete from emp where rowid in
                (
                 select rid from
                    (
                      select rowid rid,
                      dense_rank() over(partition by empno order by rowid
                    ) rn
                 from emp
                )
     where rn > 1
    );
    

提交回复
热议问题