SQL Server
[MSSQL] 테이블에서 중복 행 제거
코딩하는 박줄기
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
반응형