본문 바로가기

IT.모바일/데이터분석

SQL UNION, 중복 데이터 확인 쿼리

by FrankUniq 2025. 1. 21.
SMALL

UNION은 UNION DISTINCT와 동일하게 작동하여 중복된 행을 제거합니다.

개별 테이블 3개 2018$ 테이블: 21,996행 + 2019$ 테이블: 79,264행 + 2020$ 테이블: 40,687행 = 총 합계: 141,947 rows

UNION은 UNION DISTINCT와 동일하게 작동하여 중복된 행을 제거합니다.

UNION

UNION ALL은 중복 제거 없이 모든 행을 그대로 결합하여, 원본 데이터의 모든 행이 유지됩니다.

UNION ALL

중복 데이터 확인 sql 쿼리

-- 2018년 테이블 중복 확인
SELECT hotel, arrival_date_year, arrival_date_month, 
       arrival_date_week_number, arrival_date_day_of_month,
       COUNT(*) as duplicate_count
FROM ['2018$']
GROUP BY hotel, arrival_date_year, arrival_date_month, 
         arrival_date_week_number, arrival_date_day_of_month
HAVING COUNT(*) > 1;

-- 2019년 테이블 중복 확인
SELECT hotel, arrival_date_year, arrival_date_month, 
       arrival_date_week_number, arrival_date_day_of_month,
       COUNT(*) as duplicate_count
FROM ['2019$']
GROUP BY hotel, arrival_date_year, arrival_date_month, 
         arrival_date_week_number, arrival_date_day_of_month
HAVING COUNT(*) > 1;

-- 2020년 테이블 중복 확인
SELECT hotel, arrival_date_year, arrival_date_month, 
       arrival_date_week_number, arrival_date_day_of_month,
       COUNT(*) as duplicate_count
FROM ['2020$']
GROUP BY hotel, arrival_date_year, arrival_date_month, 
         arrival_date_week_number, arrival_date_day_of_month
HAVING COUNT(*) > 1;

호텔, 도착 날짜 관련 컬럼들을 기준으로 그룹화하여 중복된 행을 찾아냅니다.

HAVING COUNT(*) > 1 조건을 통해 동일한 값을 가진 행이 2개 이상인 경우만 표시됩니다.

댓글