【发布时间】:2021-11-06 08:25:33
【问题描述】:
我所期待的类似于 Diff 检查器。我有两个表:表 1 和表 2。它们都有相同的列。表 1 有版本 1 数据,表 2 有版本 2 数据。与版本 1 相比,我需要找到我的版本 2 发生变化的地方。也许只显示随数据一起更改的列的输出会很有帮助。
尝试使用
SELECT * FROM Table-1 UNION ALL SELECT * FROM Table-2
数据量很大,运行需要数小时,而且我必须手动检查差异发布此内容。我相信应该有一种有效的方法来做到这一点。
表 1:
| id | name | |
|---|---|---|
| 1 | person1 | person1@mail.com |
| 2 | person2 | person2@mail.com |
表 2:
| id | name | |
|---|---|---|
| 1 | person4 | person4@mail.com |
| 2 | person2 | person2@mail.com |
预期输出:
表 2 中的名称字段已更改。所以我想要类似于以下输出的内容,这应该有助于理解列名称和电子邮件中 id 1 的值已更改。
| id | name | |
|---|---|---|
| 1 | person1 | person1@mail.com |
| 1 | person4 | person4@mail.com |
【问题讨论】:
-
请提供样本数据和期望的结果。
-
Hive SQL 似乎不支持减号或除号。我认为您最好的选择是在所有列上使用完整的外部连接,然后查看每一侧的空值。您可能希望在加入之前处理空值
-
@GordonLinoff 添加了示例场景。
标签: sql database join hive hiveql