집 >데이터 베이스 >MySQL 튜토리얼 >한 행을 유지하면서 SQL Server에서 중복 행을 어떻게 삭제할 수 있습니까?
단일 행을 유지하면서 SQL Server에서 중복 행을 효율적으로 제거
데이터 무결성은 데이터베이스 관리에 있어 매우 중요합니다. 이 문서에서는 각 고유 데이터 세트의 인스턴스를 하나 이상 유지하면서 SQL Server 테이블에서 중복 행을 제거하는 일반적인 문제를 해결합니다. T-SQL은 공통 테이블 표현식(CTE)을 사용하여 간단한 솔루션을 제공합니다.
CTE 내의 OVER
절이 이 프로세스의 핵심입니다. 예시는 다음과 같습니다.
<code class="language-sql">WITH cte AS ( SELECT [foo], [bar], ROW_NUMBER() OVER (PARTITION BY [foo], [bar] ORDER BY [baz]) AS rn FROM [TABLE] ) DELETE FROM cte WHERE rn > 1;</code>
이 쿼리는 CTE를 사용하여 rn
및 [foo]
열로 정의된 그룹 내의 각 행에 고유한 행 번호([bar]
)를 할당합니다. ORDER BY [baz]
절은 각 그룹 내에서 유지되는 행을 결정합니다. 특정 요구 사항에 따라 이를 조정해야 합니다. 그런 다음 DELETE
문은 rn
이 1보다 큰 모든 행을 제거하고 [foo]
및 [bar]
의 각 고유 조합에 대해 하나의 대표 행만 남깁니다.
이 접근 방식은 SQL Server 데이터베이스의 데이터 청결성과 정확성을 유지하기 위한 효율적이고 안정적인 방법을 제공합니다.
위 내용은 한 행을 유지하면서 SQL Server에서 중복 행을 어떻게 삭제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!