상세 컨텐츠

본문 제목

[MSSQL] 테이블에서 중복 행 제거

SQL Server

by 코딩하는 박줄기 2023. 3. 13. 21:07

본문

728x90
반응형

CTE(Common Table Expression)을 사용하여 중복 데이터를 제거하는 코드입니다.

 

ROW_NUMBER() 함수를 사용하여 중복 데이터 중 첫 번째 데이터에는 1을 부여하고, 두 번째 중복 데이터에는 2를 부여하여 중복 데이터를 순서대로 정렬하며, DupRank가 1보다 큰 데이터를 삭제합니다.

이 코드는 DELETE문을 사용하여 중복 데이터를 삭제하기 때문에, 실제로 데이터베이스에서 데이터를 삭제하기 전에 잘 검토해야 합니다. 또한, 데이터가 매우 큰 경우 성능상의 문제가 발생할 수 있으므로 주의해야 합니다.

 

테이블에서 중복 행 제거

DELETE T
FROM
(
SELECT *
, DupRank = ROW_NUMBER() OVER (
              PARTITION BY key_value
              ORDER BY (SELECT NULL)
            )
FROM original_table
) AS T
WHERE DupRank > 1

 

참조

728x90
반응형

관련글 더보기

댓글 영역