Hive 加入不同的

Posted

技术标签:

【中文标题】Hive 加入不同的【英文标题】:Hive join with distinct 【发布时间】:2017-01-24 15:07:07 【问题描述】:

我有两个表 TableA 和 TableB。

TableA 具有列 REC_NUM 和 ITEM_ID。 TableB 有 ITEM_ID、UNITS 列。

我需要从 TableA 中获取一个不同的 ITEM_ID,并获取所有 TableB 中记录了 TableA 中的 ITEM_ID 与 TableB 中的 ITEM_ID 的每个匹配值。

谁能告诉我我可以做到这一点。

【问题讨论】:

【参考方案1】:

根据问题:

TABLEA 的架构: REC_NUM INT,ITEM_ID INT

TABLEB 的架构: ITEM_ID INT,UNITS INT

以下查询应该可以工作:

SELECT b.* FROM (SELECT DISTINCT ITEM_ID FROM TABLEA) a JOIN TABLEB b ON a.ITEM_ID=b.ITEM_ID;

【讨论】:

会发生什么?查询是否解析?结果出乎意料吗? @ncke 查询解析并根据要求给出结果。【参考方案2】:

如果我错了,请纠正我

select ITEM_ID, UNITS from TableB where ITEM_ID in (select ITEM_ID from tableA)

我不确定你为什么要使用 distinct,它应该与列 REC_NUM 一起使用吗?

【讨论】:

以上是关于Hive 加入不同的的主要内容,如果未能解决你的问题,请参考以下文章

如何加入蜂巢[关闭]

Hive 计数不同的 UDAF

sqoop 导入到与 Hive 仓库目录不同的目录

hive和mysql的区别是啥?

比较 Hive 查询与不同连接顺序的效率

Hive - 分层组的多个(平均)计数不同