집 >데이터 베이스 >MySQL 튜토리얼 >키 열을 기반으로 T-SQL에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?
기본 키 열을 기반으로 T-SQL에서 중복 행을 효율적으로 삭제
질문:
데이터 생성 중 오류로 인해 테이블에 중복된 행이 많이 포함되어 있습니다. 목표는 기본 키 열의 고유한 각 조합에 대해 하나의 행을 유지하면서 중복 행을 제거하는 것입니다. 그러나 테이블에는 질문과 관련이 없고 데이터가 약간 다르기 때문에 무시해야 하는 일부 열이 포함되어 있습니다.
해결책:
SQL Server 2005 이상의 경우 OVER() 함수와 공통 테이블 표현식(CTE)을 사용하여 중복 행을 효율적으로 제거할 수 있습니다.
CTE 및 DELETE 문:
<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 cte WHERE [rn] > 1</code>
지침:
위 내용은 키 열을 기반으로 T-SQL에서 중복 행을 효율적으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!