zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    周总结07(2018.1.8-2018.1.13)
    软件工程概论课总结
    第二阶段团队冲刺-seven
    人月神话阅读笔记06
    第二阶段团队冲刺-six
    周总结06(2018.1.1-2018.1.6)
    第二阶段团队冲刺-five
    开发记录06
    开发记录05
    开发记录04
  • 原文地址:https://www.cnblogs.com/xiyouzhi/p/9712551.html
Copyright © 2011-2022 走看看