hive里面union all的用法记录

Posted xiyouzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive里面union all的用法记录相关的知识,希望对你有一定的参考价值。

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的用法记录的主要内容,如果未能解决你的问题,请参考以下文章

sql中union 和 union all的区别

sql 中union all有啥用法

union和union all用法

sql 查询结果合并union all用法_数据库技巧

SQL Union和SQL Union All用法

union all是啥意思?