如何编写基于另一个表过滤表的Hive查询?

问题描述 投票:0回答:1

我有两个表,表一有两列a和b,表二有两列c和d。对于表一中的每一行,如果我可以在表二中找到一行,那么a = c and substring(b, 1, 3) = substring(d, 1, 3),然后我将这一行保留在表一中。最后,我想计算表一中有多少行。我尝试在下面写这样的查询,但我不确定它是否正确?

SELECT COUNT(1)
FROM
(SELECT One.a
 FROM One
 LEFT SEMI JOIN Two
 ON One.a  = Two.b
 AND One.ds = '2018-02-27'
 AND Two.ds = '2018-02-27'
 AND One.c IS NOT NULL
 AND Two.d IS NOT NULL
 AND SUBSTR(One.c, 1, 3) = SUBSTR(Two.d, 1, 3)
 GROUP BY One.a) subquery
hive
1个回答
0
投票

由于我没有数据示例,我发现很难判断您的代码是否正确。但是,正如我所看到的那样,你想根据两个条件加入,对吗?

前段时间我看到了这个:Hive Query- Joining two tables on three joining conditions with OR operator

我认为他们有一些不同的选择。我对你所拥有的内容提出了类似的问题,并且发现答案非常有用!

© www.soinside.com 2019 - 2024. All rights reserved.