기본 키가 없는 SQL 테이블에서 중복 레코드 삭제
기본 키가 없는 SQL 테이블에서 중복 레코드를 식별하고 제거하면 복잡한 작업이 됩니다. 여러 행이 특정 열에서 동일한 값을 공유하여 데이터에 중복이 발생하면 문제가 발생합니다. 이 문제를 해결하기 위해 열 조합을 기반으로 중복 행을 효과적으로 제거하는 쿼리를 살펴보겠습니다.
주어진 데이터가 있는 "employee"라는 다음 테이블을 고려해 보세요.
create table employee ( EmpId number, EmpName varchar2(10), EmpSSN varchar2(11) ); insert into employee values(1, 'Jack', '555-55-5555'); insert into employee values (2, 'Joe', '555-56-5555'); insert into employee values (3, 'Fred', '555-57-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555'); insert into employee values (1, 'Jack', '555-55-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6 ,'Lisa', '555-70-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555');
"EmpId" 및 "EmpSSN"을 기반으로 중복 행을 제거하면 다음을 활용할 수 있습니다. 쿼리:
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
설명:
이 쿼리를 실행하면 데이터의 원래 순서를 유지하면서 "employee" 테이블에서 중복 레코드를 효과적으로 제거할 수 있습니다. 실행 후 테이블에는 "EmpId" 및 "EmpSSN" 필드를 기반으로 하는 고유한 행만 포함됩니다.
위 내용은 기본 키 없이 SQL 테이블에서 중복 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!