집 >데이터 베이스 >MySQL 튜토리얼 >단일 복사본을 보존하면서 PostgreSQL에서 중복 행을 어떻게 삭제할 수 있습니까?
단일 복사본 보존: 동일하지 않은 중복 행 삭제
데이터 무결성을 유지하려면 데이터베이스에서 중복 레코드를 제거해야 하는 경우가 많습니다. 그러나 특정 시나리오에서는 각 중복 행 그룹의 복사본 하나를 유지해야 할 수도 있습니다. 이 문서에서는 PostgreSQL의 중복 항목 집합에서 한 행만 남기고 모두 삭제하는 문제를 다룹니다.
솔루션: 고유 식별자를 사용한 선택적 삭제
솔루션에서 제공되는 쿼리 각 중복 그룹 내에서 고유 식별자 필드의 최소(또는 최대) 값을 그룹화하고 선택하는 개념을 활용합니다. 삭제 프로세스에서 해당 최소(또는 최대) 식별자가 있는 행을 제외하면 각 고유 행의 단일 복사본이 보존될 수 있습니다.
다음 쿼리는 이 접근 방식을 보여줍니다.
DELETE FROM foo WHERE id NOT IN (SELECT min(id) FROM foo GROUP BY hash);
In 이 쿼리에서 해시 필드는 중복 세트를 정의하는 고유한 특성 또는 특성의 조합을 나타냅니다. 쿼리는 각 그룹에서 최소 ID 값을 선택하여 유지할 행을 식별하고 나머지 중복 행을 삭제에서 제외합니다.
위 내용은 단일 복사본을 보존하면서 PostgreSQL에서 중복 행을 어떻게 삭제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!