从Apache HIVE或SQL中的两个表中获取计数

时间:2015-11-20 20:07:43

标签: sql hadoop mapreduce hive bigdata

所以我有两张桌子: table_1和table_2

它们都有各种名称相同的列。

我们只需要使用2列: ID和REGION

table_1的ID字段仅与table_1不同。 table_2具有仅与table_2不同的ID字段。

但是,table_1和table_2

共享一些ID字段

我需要编写一个查询,其中我从两个表中获取不同ID字段的数量,其中REGION =' 1'

2 个答案:

答案 0 :(得分:0)

使用SQL,利用UNION消除两个表之间的重复值,因此您需要留下一个不同的ID值列表来计算。

SELECT COUNT(*)
    FROM (SELECT ID
              FROM table_1
              WHERE REGION = '1'
          UNION
          SELECT ID
              FROM table_2
              WHERE REGION = '1') t

答案 1 :(得分:0)

一个完整的外部联接应该可以解决问题。

zipStrings("L_", "_E")  // yield "LE"

zipStrings("--L-", "-E--", placeholder = '-') // yields "-EL-"

它将为table_1或table_2中的每个id创建一行。如果id在两个表中,它仍然会创建一行。

JSFiddle