首页 > 解决方案 > 有没有办法在 hive sql 中使用 OUTER UNION CORR?

问题描述

我正在尝试使用 UNION 逻辑从四个表中创建一个表,但是所有表都有一个不同的列。

PROC SQL;
    create table output_table
    select cl1, cl2, cl3 from  tb1
    OUTER UNION CORR
    select cl1, cl2, cl4 from tbl2
    OUTER UNION CORR
    select cl1,cl2, cl5 from tbl3
    OUTER UNION CORR
    select cl1, cl2, cl6 from tbl4;
quit;

在此查询中,输出表包含所有列 (cl1,cl2,cl3,cl4,cl5,cl6)。

所以我的问题是有什么方法可以在 Hive SQL 中获取整个列。

    create table output_table
    select cl1, cl2, cl3 from  tb1
    UNION ALL
    select cl1, cl2, cl4 from tbl2
    UNION ALL
    select cl1,cl2, cl5 from tbl3
    UNION ALL
    select cl1, cl2, cl6 from tbl4;

如果我这样使用,输出表上的列仅包含第一个表中的列。(cl1,cl2,cl3)

但我需要在我的输出中获取所有列。

标签: sqlhadoopsashiveql

解决方案


这是你想要的吗?

select cl1, cl2, cl3, null as cl4, null as cl5, null as cl6 from tb1
union all
select cl1, cl2, null, cl4, null, null from tbl2
union all
select cl1, cl2, null, null, cl5, null from tbl3
union all
select cl1, cl2, null, null, null, cl6 from tbl4;

推荐阅读