[MySQL] 중복 데이타 삭제하기
https://steemit.com/kr/@yjiq150/mysql
DELETE
FROM revenue
WHERE id IN ( SELECT id FROM (SELECT id FROM revenue GROUP BY collect_date, currency HAVING count(*) > 1) temp_table )
GROUP BY
쿼리를 이용하여 데이터를 aggregate 한 후에 중복된 데이터가 하나 이상 존재하는 경우를 찾는다.- 찾아진 데이터의 id 값을 temp_table 이라는 임시테이블로 명명한다.
- temp_table로부터 id 값을 다시
SELECT
해서DELETE
한다.
이 방법에서는 SELECT
한 데이터를 temp_table
이라는 임시테이블로 지정한 후에 temp_table
로 부터 SELECT
한 id
값으로 reveue
테이블에 있는 데이터를 DELETE
했다. 즉, 같은 테이블에 대한 DELETE 작업이 아니기 때문에 제약을 피할 수 있게 된다.