SQL 중복 기록 조회 방법

참고 글:http://database.51cto.com/art/201011/235159.htm
1. 표 에 남아 있 는 중복 기록 을 찾 고 중복 기록 은 하나의 필드 에 따라 판단 한다.
select * from people
where peopleId in (select   peopleId from   people group by   peopleId having count
(peopleId) > 1)

2. 표 에 남아 있 는 중복 기록 을 삭제 하고 중복 기록 은 하나의 필드 에 따라 판단 하 며 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)

좋은 웹페이지 즐겨찾기