SQL 중복 제거 쿼리 방법: 단일 필드 peopleId를 기준으로 중복 레코드를 판단하고 명령문을 사용하여 삭제합니다. 코드는 [여기서 peopleId는 (peopleId별로 people 그룹에서 peopleId 선택)]입니다.
SQL 중복 제거 쿼리 방법:
중복 레코드를 제거하기 위한
sql 단일 테이블/다중 테이블 쿼리단일 테이블 구별여러 테이블 그룹 기준그룹 기준은 주문 기준 및 제한 이전에 배치되어야 하며, 그렇지 않으면 오류가 보고됩니다1. 테이블에서 초과된 부분 찾기 중복 레코드, 단일 필드(peopleId)를 기준으로 중복 레코드 판단select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2. 테이블에서 중복된 중복 레코드를 삭제하고, 단일 필드(peopleId)를 기준으로 중복 레코드를 판단하고, rowid가 가장 작은 레코드
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)3. 테이블
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)에서 중복된 중복 레코드(다중 필드)를 찾습니다. 4. 테이블에서 중복된 중복 레코드(다중 필드)를 삭제하고 rowid가 가장 작은 레코드만 남깁니다
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)5. 가장 작은 rowid
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)(2)를 제외하고 테이블 레코드(여러 필드)에서 중복된 중복 항목을 찾습니다. 예를 들어테이블 A에 "name" 필드가 있고 " 서로 다른 레코드 간의 name" 값은 동일할 수 있으므로, 이제 테이블의 레코드 중 "name" 값이 중복되는 항목을 확인해야 합니다.
Select Name,Count(*) From A Group By Name Having Count(*) > 1성별도 동일한지 확인하면
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0(3) 방법 1
select distinct * from tableName방법 2"중복 레코드는 두 가지 의미를 가지고 있습니다. 하나는 완전 중복 레코드, 즉 모든 필드가 반복되는 레코드, 다른 하나는 이름 필드 등 일부 핵심 필드가 반복되는 레코드이지만 다른 필드는 반드시 중복되지 않거나 무시할 수 있습니다. 1. 첫 번째 유형의 중복은 해결하기가 더 쉽습니다.
select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp를 사용하여 중복 레코드가 없는 결과 집합을 가져옵니다. 테이블을 삭제해야 하는 경우 다음과 같이 중복 레코드(하나의 중복 레코드가 유지됨)를 삭제할 수 있습니다.
select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2)이 중복의 이유는 테이블 디자인이 좋지 않기 때문입니다. 2. 이러한 유형의 중복 문제는 일반적으로 중복 레코드 중 첫 번째 레코드를 유지해야 해결됩니다. 작업 방법은 다음과 같습니다. 중복 필드는 이름이라고 가정합니다.
select * from tablename where id in (select id from tablename group by id having count(id) > 1 )마지막 선택은 이름과 주소가 반복되지 않습니다. 결과 세트(그러나 추가 autoID 필드가 있으므로 선택 항목에서 이 열을 생략할 수 있습니다. (4)중복 쿼리
🎜관련 학습 권장 사항: 🎜SQL 비디오 튜토리얼🎜🎜🎜select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)3. 테이블에서 중복된 레코드를 찾습니다(다중 필드). rrreee는 where(a.peopleId,a. seq)은 통과하지 못할 것입니다! ! !
위 내용은 SQL에서 중복 쿼리를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!