SQL

[SQL] key값 없는 중복 데이터 정리하는 방법 (feat.쿼리박스)

도미노& 2018. 5. 3. 15:49

쿼리박스라는 툴 사용하면 select한 값을 insert문으로 얻을 수 있다.

다운로드 >> http://www.querybox.com/download/



1. 쿼리박스 실행


2. 2개 이상 있는 중복 데이터를 조회한다.


1
2
3
4
5
6
7
SELECT A.컬럼1, A.컬럼2, ... , A.컬럼n
FROM (
   SELECT 테이블명.* , COUNT(*) AS CNT 
   FROM 테이블명  
   GROUP BY 컬럼1, 컬럼2, 컬럼3, ... , 컬럼n
   HAVING COUNT(*)>1
) A
cs



3. 쿼리박스를 이용해 insert문을 얻는다.

>> INSERT INTO 테이블명(컬럼1, 컬럼2, ... , 컬럼n) VALUES (데이터1, 데이터2, ... , 데이터n);


4. (insert문으로 추출했으니)중복되는 데이터를 삭제한다. 그전에 select로 확인.


1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT *
   FROM 테이블명
WHERE 컬럼1 = '조건1'
AND 컬럼2 = '조건2'
AND 컬럼3 IN (
  SELECT A.컬럼2
  FROM (
    SELECT 테이블명.* , COUNT(*) AS CNT 
    FROM 테이블명  
    GROUP BY 컬럼1, 컬럼2, 컬럼3
    HAVING COUNT(*)>1
  ) A
);
cs


5. 3에서 얻은 insert문 실행하고 commit;