Hive UNION ALL的使用和Hive子查詢
阿新 • • 發佈:2018-12-23
UNION的使用
union用於聯合多個select語句的結果集,合併為一個獨立的結果集。當前只支援UNION ALL(bag union)。不能消除重複行,每個select語句返回的列的數量和名字必須一樣,否則會丟擲語法錯誤。
select_statement UNION ALL select_statement UNION ALL select_statement.....
如果必須對union的結果集做一些額外的處理,整個語句可以被嵌入在from子句中。
select * from from(
select_statement
UNION ALL
select_statement
) unionResult
Hive子查詢
子查詢語法
select .... from (subquery) name ...
Hive只在from子句中支援子查詢。子查詢必須給定一個名字,因為每個表在from子句中必須有一個名字。子查詢的查詢列表的列,必須有唯一的名字。子查詢的查詢列表在外面的查詢是可用的,就向表的列。子查詢也可以一個UNION查詢表示式,Hive支援任意層次的子查詢。
示例1:
select col from (
select a+b as col from t1
) t2;
示例2:
select t3.col from(
select a+b as col from t1
UNION ALL
select c+d as col from t2
) as t3;