집 >데이터 베이스 >MySQL 튜토리얼 >고유 식별자 없이 Netezza에서 중복 행을 삭제하는 방법은 무엇입니까?
고유 식별자가 없는 중복 제거: Netezza 솔루션
대규모 Netezza 테이블에서는 고유 식별자가 없으면 중복 행을 제거하는 것이 어려울 수 있습니다. 제공된 SQL 쿼리는 다른 데이터베이스에서는 작동할 수 있지만 Netezza에서는 WITH 문 뒤의 DELETE 절 제한으로 인해 실패합니다.
이러한 문제를 극복하기 위해 USING 키워드를 활용한 대안적인 접근 방식을 제안합니다. 다음 Netezza 쿼리는 중복 행을 원활하게 제거할 수 있습니다.
<code class="language-sql">DELETE FROM table_with_dups T1 USING table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
작동 방식은 다음과 같습니다.
T1.ctid < T2.ctid
은 중복 행 중 하나만 삭제되도록 합니다. DELETE를 실행하기 전에 DELETE를 SELECT *로 바꾸고 USING을 쉼표(,)로 바꾸면 중복 항목을 볼 수 있습니다.
<code class="language-sql">SELECT * FROM table_with_dups T1, table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
대체로 이 Netezza 쿼리는 복잡한 하위 쿼리나 창 기능 없이도 고유 식별자 없이 중복 행을 제거하기 위한 효율적인 솔루션을 제공합니다.
위 내용은 고유 식별자 없이 Netezza에서 중복 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!