여러 열에서 중복 행을 식별하고 제거하는 SQL 기술
여러 필드를 기반으로 중복 레코드를 효율적으로 식별하고 제거하는 것은 중요한 데이터베이스 관리 작업입니다. 이 가이드에서는 이를 달성하기 위한 SQL 접근 방식을 간략하게 설명합니다.
중복 조합 식별:
두 번 이상 나타나는 필드 조합을 찾아내려면 다음 SQL 쿼리를 사용하세요.
<code class="language-sql">SELECT field1, field2, field3, COUNT(*) AS DuplicateCount FROM table_name GROUP BY field1, field2, field3 HAVING COUNT(*) > 1;</code>
중복 행 삭제(첫 번째 행 제외):
중복 항목을 제거하는 방법은 '첫 번째 행' 정의에 따라 다릅니다. 각 고유 조합의 첫 번째 항목만 유지해야 하는 경우 일반적인 기술은 창 함수와 하위 쿼리를 사용하는 것입니다(아래 참조). 데이터베이스 시스템에 따라 임시 테이블이나 CTE(공용 테이블 표현식)를 사용하는 등의 대체 방법을 사용할 수도 있습니다.
ROW_NUMBER()를 사용하는 방법:
이 접근 방식은 중복 그룹 내의 각 행에 고유한 순위를 할당하므로 순위가 1보다 큰 행을 선택적으로 삭제할 수 있습니다.
<code class="language-sql">WITH RankedRows AS ( SELECT field1, field2, field3, ROW_NUMBER() OVER (PARTITION BY field1, field2, field3 ORDER BY field1) AS rn FROM table_name ) DELETE FROM RankedRows WHERE rn > 1;</code>
중요 고려 사항:
ORDER BY
함수 내의 ROW_NUMBER()
절은 매우 중요합니다. 중복 항목의 순위가 지정되는 방법을 나타냅니다. 원하는 "첫 번째" 행을 유지하려면 적절한 열을 선택하세요.DELETE 문을 실행하기 전에 항상 데이터베이스를 백업하는 것을 잊지 마세요.
위 내용은 SQL의 여러 필드를 기반으로 중복 레코드를 찾고 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!