서브쿼리
서브쿼리 (Sub-Queries) — Hive Dialect
Hive dialect에서 FROM 절과 WHERE 절의 서브쿼리를 지원하는 방법을 설명해요.
본문
Sub-Queries in the FROM Clause
Description
Hive dialect는 FROM 절에서 서브쿼리를 지원해요. FROM 절의 모든 테이블은 이름을 가져야 하므로 서브쿼리에는 이름을 부여해야 해요.
서브쿼리 select 목록의 컬럼은 고유한 이름을 가져야 해요.
서브쿼리 select 목록의 컬럼은 테이블의 컬럼처럼 외부 쿼리에서 사용할 수 있어요.
서브쿼리는 UNION이 있는 쿼리 표현식일 수도 있어요. Hive dialect는 임의 수준의 서브쿼리를 지원해요.
Syntax
select_statement FROM ( select_statement ) [ AS ] name
Example
SELECT col
FROM (
SELECT a+b AS col
FROM t1
) t2
Sub-Queries in the WHERE Clause
Description
Hive dialect는 WHERE 절에서도 일부 유형의 서브쿼리를 지원해요.
Syntax
select_statement FROM table WHERE { colName { IN | NOT IN }
| NOT EXISTS | EXISTS } ( subquery_select_statement )
Examples
SELECT * FROM t1 WHERE t1.x IN (SELECT y FROM t2);
SELECT * FROM t1 WHERE EXISTS (SELECT y FROM t2 WHERE t1.x = t2.x);