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



所以我有两个表:表1和表2

它们都有不同的同名列。

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

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

但是,一些ID字段由表1和表2 共享

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

一个完整的OUTER JOIN应该可以做到这一点。

SELECT COUNT(*) 
FROM table_1 
FULL OUTER JOIN table_2 ON (table_1.id=table_2.id)

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

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+加入

使用SQL,利用UNION消除两个表之间的重复值,这样您就可以得到一个不同的ID值列表。

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

相关内容

  • 没有找到相关文章

最新更新