중복 데이터 하나만 가져오는 Oracle 단계: 1. GROUP BY 및 HAVING 절과 결합된 SELECT 문을 사용하여 중복 데이터를 찾습니다. 2. 정확한 중복 데이터 레코드가 삭제되도록 ROWID를 사용하여 중복 데이터를 삭제합니다. 또는 "ROW_NUMBER()" 함수를 사용하여 중복 데이터 집합의 첫 번째 레코드를 제외한 모든 레코드를 삭제합니다. 3. "select count(*) from" 문을 사용하여 삭제된 레코드 수를 반환합니다. 결과를 보장합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 19c, Dell g3 컴퓨터.
Oracle 데이터베이스를 사용하면 중복된 데이터 기록이 자주 나타납니다. 이러한 중복 기록은 저장 공간을 낭비할 뿐만 아니라 데이터 작업을 방해할 수도 있습니다. 따라서 중복된 데이터를 제거하는 것이 필요합니다. 이 문서에서는 Oracle의 SQL 문을 사용하여 중복 데이터를 제거하고 하나의 레코드만 유지하는 방법을 소개합니다.
반복 데이터의 테이블 구조 이해
작업을 시작하기 전에 먼저 반복 데이터가 위치한 테이블의 구조를 이해해야 합니다. 테이블 정의를 살펴보면 중복 데이터로 간주되는 열 값과 이를 결정하는 방법을 확인할 수 있습니다.
1. 중복 데이터 찾기
중복 데이터를 찾으려면 GROUP BY 및 HAVING 절과 결합된 SELECT 문을 사용하세요. 구체적인 구문은 다음과 같습니다.
SELECT 列1, 列2, 列N, COUNT(*) FROM 表名 GROUP BY 列1, 列2, 列N HAVING COUNT(*) > 1;
이 SQL 문은 중복 데이터의 모든 레코드를 반환합니다. 각 행에는 중복 데이터의 열 값과 총 중복 개수가 포함됩니다.
2. 중복 데이터 삭제
중복 데이터를 삭제하는 방법에는 여러 가지가 있습니다. 다음은 두 가지 일반적인 방법입니다.
1. ROWID를 사용하여 중복 데이터를 삭제합니다.
DELETE FROM 表名 WHERE ROWID NOT IN (SELECT MAX(ROWID) FROM 表名 GROUP BY 列1, 列2, 列N);
이 SQL 문은 각 중복 데이터 집합을 삭제합니다. 마지막 레코드를 제외한 모든 레코드입니다. ROWID를 사용하면 정확한 중복 데이터 레코드가 삭제됩니다.
2. 중복 데이터를 삭제하려면 ROW_NUMBER() 함수를 사용하세요.
DELETE FROM 表名 WHERE ROWID IN (SELECT ROWID FROM (SELECT ROWID, ROW_NUMBER() OVER(PARTITION BY 列1, 列2, 列N ORDER BY 列1) AS rn FROM 表名) WHERE rn > 1);
이 SQL 문은 각 중복 데이터 집합의 첫 번째 레코드를 제외한 모든 레코드를 삭제합니다. ROW_NUMBER() 함수는 지정된 열에 따라 정렬한 다음 PARTITION BY 절과 협력하여 첫 번째 레코드만 유지되도록 분할을 구현합니다.
3. 삭제 결과 확인
중복 데이터를 삭제한 후에는 실수로 다른 중요한 데이터가 삭제되지 않았는지 작업 결과를 확인해야 합니다.
SELECT COUNT(*) FROM 表名;
이 SQL 문은 중복 제거 후 레코드 수를 반환합니다. 결과가 이전 총 중복 개수와 크게 다른 경우 삭제 작업의 오류로 인한 것일 수 있습니다.
요약:
중복 데이터 제거는 Oracle 데이터베이스 관리의 일반적인 작업 중 하나입니다. 이 문서에서는 중복 데이터 찾기, 중복 데이터 삭제, 결과 확인 등의 세부 단계를 포함하여 Oracle의 SQL 문을 사용하여 중복 데이터를 제거하는 단계를 소개합니다. 이러한 기술을 합리적으로 적용함으로써 데이터베이스의 중복 데이터를 효과적으로 정리하고 데이터의 품질과 신뢰성을 향상시킬 수 있습니다.
위 내용은 오라클에서 중복 데이터 하나만 검색하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!