Monday
Impala Union 사용 본문
1) Default UNION
SELECT * FROM table1 UNION SELECT * FROM table2;
= SELECT * FROM table1 UNION DISTINCT SELECT * FROM table2
Impala 에서 UNION = UNION DISTINCT 입니다.
2) Impala UNION 사용 조건
또한, Impala 에서 Union 사용 시 table1의 컬럼이름과, table2의 컬럼이름이 같아야 합니다.
ex) SELECT zip_plus_4 AS zipcode FROM california_emp UNION DISTINCT SELECT CAST(zip AS STRING) AS zipcode FROM california_offices;
3) Union 사용 시 유의사항
1. Limit 사용 시 마지막 테이블에만 적용됨.
ex) califonia_offices 테이블에 65개, oregon offices 테이블에 5개의 zip이 존재할 때 다음과 같은 결과는 67이 나옵니다.
SELECT zip FROM california_offices
UNION ALL
SELECT zip FROM oregon_offices
LIMIT 2;
2. ORDER BY 적용 시 순서 보장 안됨.
ex ) califonia_offices 테이블에 zipcode 범위가 1000~2000, oregon offices 테이블에 zipcode 범위가 3000~4000
SELECT zip FROM california_offices
UNION ALL
SELECT zip FROM oregon_offices
ORDER BY country DESC;
( ORDER BY가 마지막 oregon_offices 테이블에만 적용, 뿐만 아니라 UNION은 순서 유지를 보장해주지 않습니다. 따라서 맨 위에 어떤 Row가 올 지 장담 할 수 없습니다.)
'빅데이터 > Impala' 카테고리의 다른 글
Apache Impala: 혁신적인 Hadoop SQL 쿼리 엔진의 탄생 (0) | 2024.11.24 |
---|---|
Impala-shell 변수 사용하기 (0) | 2021.02.22 |