Hive UNION ALL的使用和Hive子查询

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;
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值