RDBMS

MSSQL - 중복데이터 처리

크라우니 2021. 10. 23. 02:17

MSSQL에서 중복데이터가 발생시 사용하는 쿼리를 한번 살펴 봅니다.

 

우선 중복처리를 위해서 중복을 확인 할 필요가 있습니다.

(단 확실하게 중복이 들어있는것이 맞다면 이 쿼리를 실행하지 않습니다..

 그냥 시간만 낭비할뿐..)

 

SELECT ROW_NUMBER() OVER (PARTITION BY <<Columns Name>>  
ORDER BY <<Columns Name>>, * 
FROM <<Table Name>>

 

이렇게 조회를 하면 내가 중복을 거를 조건을 Column Name으로 하여 조회 할 수 있다.

 

이렇게 중복이 확인 되면 

 

DELETE A
FROM (
        SELECT ROW_NUMBER() OVER (PARTITION BY <<Columns Name>>
ORDER BY <<Columns Name>>) AS NUM, * 
FROM <<Table Name>>
      ) A
WHERE num >= 2

 

각 중복을 확인하고 중복 된 회수를 A에 기록한다. 그리고 A의 회수가 2이상 즉 중복이면 삭제하는 쿼리를

이용하여 중복을 제거한다.

 

- 주의사항

1 . 디비 성능에 따른 속도 편차가 있을 수 있다. 

2 . 데이터 양에 따른 속도 차이가 있을 수 있다. 

3. 조건을 잘 입력해야 깔끔하게 제거가 가능하다.