[sql] SQL에서 중복 데이터를 삭제하는 방법

title: SQL에서 중복 데이터를 삭제하는 방법 author: 샘플 유저 date: 2022년 6월 15일 —

SQL에서 중복 데이터 삭제하기

SQL(Database Management System)에서 중복 데이터는 데이터베이스의 효율성을 저해할 수 있습니다. 중복 데이터를 삭제하려면 DELETE 문이나 CTE(Common Table Expressions)를 사용하여 중복된 데이터를 찾고 삭제할 수 있습니다.

1. DELETE 문을 사용한 중복 데이터 삭제

아래의 예제는 DELETE 문을 사용하여 중복 데이터를 삭제하는 방법을 보여줍니다.

DELETE FROM table_name
WHERE column_name IN
    (SELECT column_name
     FROM table_name
     GROUP BY column_name
     HAVING COUNT(*) > 1)

위 예제에서, table_name은 중복 데이터가 포함된 테이블의 이름이고, column_name은 중복을 확인할 열의 이름입니다. 이 쿼리는 중복된 값을 가진 행을 삭제합니다.

2. CTE(Common Table Expressions)를 사용한 중복 데이터 삭제

CTE(Common Table Expressions)를 사용하여 중복 데이터를 확인하고 삭제할 수도 있습니다. 아래의 예제는 CTE를 사용한 중복 데이터의 확인과 삭제 방법을 보여줍니다.

WITH cte AS (
    SELECT column_name,
           ROW_NUMBER() OVER(PARTITION BY column_name ORDER BY column_name) AS row_num
    FROM table_name
)
DELETE FROM cte
WHERE row_num > 1

위 예제에서, table_name은 중복 데이터가 포함된 테이블의 이름이고, column_name은 중복을 확인할 열의 이름입니다. 이 쿼리는 중복된 값을 가진 행을 삭제합니다.

중복 데이터를 삭제하기 전에는 데이터베이스를 백업하는 것이 좋습니다. 중복 데이터 삭제 작업은 신중하게 수행해야 합니다.

SQL에서 중복 데이터 삭제는 데이터베이스의 정리와 효율성을 높일 수 있는 중요한 작업입니다. 데이터의 정합성을 유지하기 위해 정기적으로 중복 데이터를 확인하고 삭제하는 것이 좋습니다.