2017-04-17 5 views
0

실제로 0 행이 삭제 될 때까지 내 중복 레코드를 삭제하는 SQL 문을 찾고 있습니다.0 행이 삭제 될 때까지 중복을 삭제하기위한 SQL 솔루션

이미 아래의 sql-statement는 중복 레코드를 삭제하지만 0 행이 삭제 될 때까지 여러 번 실행해야합니다.

delete from results_table where rowid in 
      (select min(rowID) from results_table 
      group by u_name||u_date 
      having count(*) > 1) 

내 결론은 0 행이 삭제 될 때까지 한 번만 실행하는 것입니다.

미리 감사드립니다. :)

답변

1

한꺼번에 모두 삭제하는 것은 어떻습니까?

delete from results_table 
where rowid not in (select min(rowID) 
        from results_table 
        group by u_name, u_date 
        ); 

또는, 당신은 최대 행 ID 원하는 것 때문에 :

delete from results_table 
where rowid not in (select max(rowID) 
        from results_table 
        group by u_name, u_date 
        ); 
+0

감사 의견을 많이, 그것을 잘 :)를 작동 –