一个学生表Student(s_id,s_name)存在很多完全一样的记录,怎么把它们删除.

解决方案 »

  1.   

    delete student where rowid not in (select max(rowid) from student group by s_id,s_name);commit;
      

  2.   

    DELETE student t
     WHERE ROWID != (SELECT MAX(ROWID) FROM student t WHERE a.student_id = t.student_id);
      

  3.   

    with leno as
    (select s_id,rownumber()over(partition by s_id,s_name order by s_id,s_name) rowid from student
    )
    delete from leno 
    where rowid >= 2
      

  4.   

    用ROWID删除时最快的了结帖率:102.17%    强
      

  5.   

    with leno as
    (select s_id,rownumber()over(partition by s_id,s_name order by s_id,s_name) rowid from student
    )
    delete from leno 
    where rowid >= 2