이 글은 주로 MySQL에 대한 관련 정보를 소개합니다. 중복 데이터 인스턴스에 대한 자세한 설명이 필요한 친구는
MySQL 중복 데이터 인스턴스에 대한 자세한 설명
중복 레코드에 대한 두 가지 의미가 있습니다. 하나는 완전합니다. 중복 레코드, 즉 모든 필드가 반복되고, 두 번째는 일부 필드가 반복되는 레코드입니다. 첫 번째 유형의 중복은 비교적 쉽게 해결할 수 있습니다. 중복을 제거하려면 query 문에 Unique 키워드를 사용하면 됩니다. 이러한 중복이 발생하는 주된 이유는 테이블 디자인이 좋지 않기 때문입니다. 이는 기본 키나 고유한 index 열을 테이블에 추가하면 방지할 수 있습니다.
select distinct * from t;
두 번째 유형의 중복 문제는 일반적으로 중복 레코드 중 아무 레코드나 쿼리해야 합니다. 테이블 t에 id, name, address라는 세 개의 필드가 있다고 가정합니다. id는 기본 키이고 중복 필드는 이름과 주소입니다. 이 두 필드의 고유한 결과 집합을 가져오는 데 필요합니다.
-- Oracle, MySQL, 상관 하위 쿼리 사용
select * from t t1 where t1.id = (select min(t2.id) from t t2 where t1.name = t2.name and t1.address = t2.address);
-- Hive는 FROM 절에서 하위 쿼리 사용만 지원합니다. 하위 쿼리에는 이름이 있어야 하며 열은 고유해야 합니다
select t1.* from t t1, (select name, address, min(id) id from t group by name, address) t2 where t1.id = t2.id;-- 하이브의 row_number() 분석
select t.id, t.name, t.address from (select id, name, address, row_number() over (distribute by name, address sort by id) as rn from t) t where t.rn=1;를 사용할 수도 있습니다.
위 내용은 MySQL에서 중복 데이터를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!