JOIN을 사용하여 중복 데이터 필터 정리하기

데이터베이스에서 중복된 데이터를 정리하고 필터링하는 작업은 매우 중요합니다. 중복 데이터는 저장 공간을 차지할 뿐만 아니라 쿼리 결과를 왜곡시킬 수도 있기 때문에 깔끔하고 정확한 결과를 얻기 위해서는 중복 데이터를 제거해야 합니다.

JOIN은 주어진 조건에 따라 여러 테이블을 조합하여 결과를 반환하는 역할을 담당합니다. JOIN을 사용하여 중복 데이터를 필터링하는 방법을 살펴보겠습니다.

먼저, 중복 데이터가 있는 테이블을 가정해봅시다. 예를 들어, ‘users’라는 테이블에는 이름, 이메일, 전화번호가 저장되어 있습니다. 중복된 이메일 데이터를 제거하고 싶다면 다음과 같은 쿼리를 사용할 수 있습니다.

SELECT * 
FROM users
JOIN (
    SELECT email, COUNT(*) AS count
    FROM users
    GROUP BY email
    HAVING count > 1
) AS duplicates
ON users.email = duplicates.email
ORDER BY users.email;

위의 쿼리는 중복된 이메일 데이터를 가진 행을 필터링하기 위해 서브쿼리를 사용합니다. 서브쿼리에서는 중복된 이메일과 그 개수를 구한 뒤, 중복된 데이터를 가진 행을 JOIN을 통해 원본 테이블과 조합합니다. 그리고 JOIN의 결과를 이메일을 기준으로 정렬하여 반환합니다.

이를 실행하면 중복된 이메일 데이터가 제거된 결과를 얻을 수 있습니다. 이제 중복 데이터를 필터링하여 깔끔하고 정확한 결과를 얻을 수 있습니다.

#해시태그 #데이터베이스