LanguageManual Union

LanguageManual Union

여러 SELECT 문의 결과를 하나로 합치는 UNION 연산을 다루는 문서예요. UNION ALL은 중복을 그대로 두고, UNION(또는 UNION DISTINCT)은 중복을 제거해서 합칩니다.

출처: 문서

본문

UNION 은 여러 개의 SELECT 문 결과를 하나의 결과 집합으로 합칩니다.

구문:

select_statement UNION [ALL | DISTINCT] select_statement ...

여러 SELECT 문을 연결할 수 있으며, 선택 절은 결과에 적용됩니다.

예제:

SELECT a, b FROM t1
UNION ALL
SELECT c, d FROM t2;
  • UNION ALL 은 모든 행을 유지합니다.
  • UNION (또는 UNION DISTINCT) 은 중복 행을 제거합니다.
  • 기본 동작은 중복을 제거하는 DISTINCT 입니다.

열 이름과 타입 결정:

결과 집합의 컬럼 이름과 타입은 첫 번째 SELECT 문을 기준으로 결정됩니다. 따라서 각 SELECT 문의 컬럼 수는 같아야 하며, 타입이 서로 다른 경우 Hive가 공통 타입으로 맞춰 줍니다.

정렬과 제한:

  • 결과의 순서는 보장되지 않습니다. 정렬이 필요하면 UNION 전체에 대해 마지막에 ORDER BY 를 사용하세요.
  • ORDER BYLIMIT 를 개별 SELECT 에 적용하려면 괄호로 감싸야 합니다.
(SELECT a FROM t1 ORDER BY a LIMIT 10)
UNION ALL
(SELECT a FROM t2 ORDER BY a LIMIT 10)

더 알아보기 (Learn more)