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
[MS SQL] 비교일자로부터 몇 주 지났는지를 구하기 (0) | 2023.04.10 |
---|---|
[MSSQL] WITH 임시테이블, 재귀 (0) | 2023.03.14 |
[MSSQL] 문자열의 시작 또는 끝에서 공백 제거 (0) | 2023.01.30 |
[MSSQL] paging 페이징 처리 OFFSET ROWS FETCH (0) | 2023.01.26 |
[MSSQL] Json 형식으로 데이터 출력 및 파일생성 (0) | 2023.01.09 |
댓글 영역