하나의 복사본을 유지하면서 중복된 PostgreSQL 행을 삭제하는 방법은 무엇입니까?
Jan 06, 2025 am 10:03 AM단일 복사본 보존: 중복 PostgreSQL 행 삭제
데이터 관리 영역에서 중복 행이 발생하면 문제가 발생할 수 있습니다. 널리 사용되는 관계형 데이터베이스 관리 시스템인 PostgreSQL은 이러한 상황을 처리하기 위한 다양한 옵션을 제공합니다. 사용자가 각 집합에서 단일 복사본을 유지하면서 중복 행을 삭제하려고 할 때 한 가지 특정 시나리오가 발생합니다.
쿼리 솔루션
이를 달성하기 위해 SQL 쿼리를 사용할 수 있습니다. . 다음 쿼리는 제공된 문서에 설명된 단계를 따릅니다.
DELETE FROM foo WHERE id NOT IN (SELECT min(id) --or max(id) FROM foo GROUP BY hash)
설명
이 쿼리는 하위 쿼리를 사용하여 각 그룹의 최소 또는 최대 ID 값을 식별합니다. 중복 행. 해시 열은 중복이 결정되는 기준을 나타냅니다. 최소값 또는 최대값과 일치하지 않는 ID를 제외함으로써 쿼리는 각 중복 세트의 단일 복사본을 보존하고 나머지는 삭제합니다.
대체 쿼리
대체 접근 방식 ROW_NUMBER() OVER () 함수를 사용합니다.
DELETE FROM foo AS f WHERE ROW_NUMBER() OVER (PARTITION BY hash ORDER BY id) > 1
이 쿼리는 행 번호를 각 행에 할당하고 해시 열로 분할하고 id 열을 기준으로 오름차순으로 정렬합니다. 그런 다음 행 번호가 1보다 큰 행(즉, 중복)을 삭제합니다.
결론
제시된 쿼리 중 하나를 PostgreSQL에 구현하면 사용자가 효과적으로 중복을 삭제할 수 있습니다. 각 세트에서 단일 복사본을 보존하면서 행. 이 접근 방식을 사용하면 원본 데이터 세트의 무결성을 유지하면서 중복 데이터를 제거할 수 있습니다.
위 내용은 하나의 복사본을 유지하면서 중복된 PostgreSQL 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
