> 데이터 베이스 > MySQL 튜토리얼 > PostgreSQL에서 중복 행의 복사본을 하나만 유지하는 방법은 무엇입니까?

PostgreSQL에서 중복 행의 복사본을 하나만 유지하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-06 10:15:43
원래의
753명이 탐색했습니다.

How to Keep Only One Copy of Duplicate Rows in PostgreSQL?

Postgres에서 중복 행의 복사본 하나 보존

중복 데이터를 처리할 때 적어도 하나의 행을 유지하면서 중복을 제거해야 하는 경우가 종종 있습니다. 각 중복 세트의 인스턴스입니다. Postgres에서는 다음 접근 방식을 통해 이를 수행할 수 있습니다.

단일 복사본을 유지하면서 중복 행을 삭제하려면 다음 쿼리를 사용할 수 있습니다.

DELETE FROM foo
WHERE id NOT IN (
  SELECT MIN(id)  -- or MAX(id) for the latest copy
  FROM foo
  GROUP BY hash
);
로그인 후 복사

이 쿼리에서:

  • foo는 중복 행을 포함하는 테이블입니다.
  • id는 기본 키입니다.
  • hash는 중복 행을 식별하는 열 또는 표현식입니다(예: 열의 고유한 조합 또는 해시 함수).

MIN(id) 또는 MAX( id) 하위 쿼리 내에서는 각 중복 세트의 가장 오래되거나 최신 복사본만 유지되도록 합니다.

이 접근 방식을 사용하면 각 중복 세트의 복사본이 최소 한 개 이상 유지됩니다. 불필요한 중복을 제거하면서 중복 행은 테이블에 유지됩니다.

위 내용은 PostgreSQL에서 중복 행의 복사본을 하나만 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿