【问题标题】:Hive join two tables by removing duplicatesHive 通过删除重复连接两个表
【发布时间】:2018-03-28 16:28:48
【问题描述】:

我有两个蜂巢表 -

表格1: col1 col2 --------- 1个 2℃ 3天 表2: col1 col2 col3 ---------------- 1 b x 1个 1 bz 2 c x 3 d x

正如您在表 2 中看到的,我有 col1 和 col2 的重复值。我想在选择时删除这些重复项。 我不关心 col3。

我正在寻找可以给我的选择查询 -

col1 col2 col3 ---------------- 1个 2 c x 3 d x

我尝试使用不同的 JOIN,但最终得到重复值。

【问题讨论】:

  • 如果您使用 DISTINCT,我看不出 table1 的重要性...您能给我们您尝试过的查询吗?

标签: hadoop hive hiveql


【解决方案1】:

使用GROUP BY 和JOIN

SELECT a.col1,
  a.col2,
  MAX(b.col3) AS col3
FROM Table1 a
JOIN Table2 b
ON a.col1 = b.col1
  AND a.col2 = b.col2
GROUP BY a.col1,
  a.col2;

我不关心 col3。

所以,如果您不想在输出中使用它,您可以简单地使用 EXISTS

SELECT a.col1,
       a.col2
FROM   table1 a
WHERE  EXISTS (SELECT 1
               FROM   table2 b
               WHERE  a.col1 = b.col1);  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 2017-04-30
    • 2016-07-09
    • 2021-01-16
    • 2012-07-05
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多