【发布时间】:2019-08-06 23:27:25
【问题描述】:
我正在尝试在 4 个 Hive 表上进行完全外连接。 JOIN 键相同,但 4 个表的架构不同。 我想为 4 个表中存在的所有 id 生成所有列值。 但是 id 列应该只出现一次,包含所有值,而不是 4 次(每个来自一个表)
查询 1
select count(*)
from table1 f FULL OUTER JOIN table2 u on f.id=u.id
FULL OUTER JOIN table3 v on f.id=v.id
FULL OUTER JOIN table4 v_in on f.id=v_in.id;
计数=2787037
查询 2
select count(*)
from table1 f FULL OUTER JOIN table2 u on f.id=u.id
FULL OUTER JOIN table3 v on f.id=v.id
FULL OUTER JOIN table4 v_in on f.id=v_in.id
group by f.id,u.id,v.id,v_in.id, f.name, f.amt, f.add, u.dt, u.ts, v.ea,v.rd,
v_in.c1,v_in.c2,v_in.c3,v_in.c4,v_in.c5;
计数=2787037
如何从一列中的 4 个表中生成 id 的所有值,以及其他列值?
有没有更好的方法来做到这一点?
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。答案似乎是“只需选择您想要的列”。
标签: sql join hive outer-join