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. 조건을 잘 입력해야 깔끔하게 제거가 가능하다.