1. 程式人生 > >hive裏面union all的用法記錄

hive裏面union all的用法記錄

str 同時 字段類型 多個 字段名 類型 exce 重復行 The

UNION用於聯合多個select語句的結果集,合並為一個獨立的結果集,結果集去重。

UNION ALL也是用於聯合多個select語句的結果集。但是不能消除重復行。現在hive只支持UNION ALL。

這裏需要特別註意,每個select語句返回的列的數量和名字必須一樣,同時字段類型必須完全匹配,否則會拋出語法錯誤。

字段名稱一樣,並不是必須完全一樣,比如下面這個例子:

例一:字段名完全一樣

select a,b,c from t1

union all

select a,b,c from t2

例二:字段名前面有表名不一致,其他一致

select t1.a,t2.b,t2.c from t1

inner join t2 on t1.a = t2.a

union all

select t3.a,t4.b,t4.c from t3

inner join t4 on t3.a = t4.a

這兩個例子都不報錯

例三:第一個查詢第二個字段重命名為k,與第二個查詢字段名不一樣了,此時會報錯

select a,‘‘ as k,c from t1

union all

select a,b,c from t2

會報編譯錯誤

編譯錯誤:SemanticException The abstract syntax tree is null

hive裏面union all的用法記錄