[SQL] 중복 레코드를 삭제
SQL중복 레코드를 삭제
난 그냥 하나 개의 레코드를 원하는 테이블에 배치에 존재하는 중복 레코드를 삭제하고이 쿼리를 통해 수행 할 수 있습니다 쿼리 됐나 의해 삭제 될 그들에게 휴식을 할 수있는 몇 가지 방법이있다. 제안하십시오
해결법
-
==============================
1.이 시도 -
이 시도 -
먼저 테이블에 IDENTITY 등의 id 컬럼을 추가 -
alter <tablename> add id INT IDENTITY
그런 다음 중복 레코드를 삭제하는 쿼리 아래 사용 -
delete FROM <tablename> WHERE id IN ( SELECT MAX(id) FROM <tablename> GROUP BY <columnnames defining uniqueness> having count ( * ) > 1 )
그것은 단지 기존 행 중 하나 개 중복을 삭제하는 것을 고려하십시오. 공유 조건을 그룹화하는 것이 세 행 즉이있는 경우 -이하지 않습니다 작품은, 당신이 (더 행이 삭제되지 않을 때까지) 쿼리를 여러 번 실행하거나 삭제 조건을 변경하지 않는 한.
-
==============================
2.별개의 사용 :
별개의 사용 :
SELECT distinct * FROM Table ....
-
==============================
3.그것은 기본적으로 테이블의 구조에 따라 달라집니다, 그것은이 제약 조건의 수와는 어떤가있는 경우, 기본 키의 열 수.
그것은 기본적으로 테이블의 구조에 따라 달라집니다, 그것은이 제약 조건의 수와는 어떤가있는 경우, 기본 키의 열 수.
당신은 대부분의 impotantly 당신이 당신의 쿼리 iwth 그 중복을 제거하는 데 걸리는 시간을 고려할 필요가 다음이 위의 제약 조건에 따라 고유 한 기록을 확인하고 할 optmized 쿼리를 찾을 필요가있다.
당신이 전체 구조와 몇 가지 예를 들어 중복 된 데이터를 게시하지 않는 그래서 아무도 언급 할 수 없다.
이 작은 입력이 도움이되기를 바랍니다.
-
==============================
4.여기에 삭제 중복 레코드의 샘플 예입니다
여기에 삭제 중복 레코드의 샘플 예입니다
Create table #Test (colA int not null, colB int not null, colC int not null, id int not null identity) on [Primary] GO INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1) INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1) INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1) INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3) INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3) INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3) INSERT INTO #Test (colA,colB,colC) VALUES (4,5,6) GO Select * from #Test GO Delete from #Test where id < (Select Max(id) from #Test t where #Test.colA = t.colA and #Test.colB = t.colB and #Test.colC = t.colC) GO Select * from #Test GO
from https://stackoverflow.com/questions/3385661/deleting-duplicate-records by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 내가 어디 절에 별칭을 사용합니까? [복제] (0) | 2020.07.15 |
---|---|
[SQL] 외래 키 열은 여러 개의 기본 키에 매핑 (0) | 2020.07.15 |
[SQL] 어떻게 콤보 <모두 선택>에 대한 기능을 추가하려면 Microsoft Access 폼에서 (0) | 2020.07.15 |
[SQL] 어떻게 읽을 더 쉽게 잘 포맷 코드를 읽을 수있는 블록으로 SQL 문자열을 포맷하기 (0) | 2020.07.15 |
[SQL] 동일한 ID를 갖는 행 테이블에서 컬럼을 사용하여 문자열 값을 형성하는 가장 좋은 방법이 무엇입니까? (0) | 2020.07.15 |