这应该很简单,但我无法理解。我需要进行选择以获取某些帐户的更新日期值。
我从这里开始,T1:
+----------+---------+
| date | account |
+----------+---------+
| 4/1/2018 | 1 |
| 4/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | 4 |
| 4/1/2018 | 5 |
+----------+---------+
然后在 T2 中更新一些日期:
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
+----------+---------+
如何将此输出输入 T3,仅更新这些帐户?
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | 4 |
| 4/1/2018 | 5 |
+----------+---------+
我可以对账号进行加入,但是那些没有改变的怎么办?如何捕捉那些?
此外,T1 拥有大约 800 万条记录,因此性能将是一个因素。从 Teradata 中提取,加载到 Hive 中。
谢谢!
最佳答案
只是对以前好的答案的补充..也尝试将它与coalesce
一起使用,并让我知道它是否可以提高性能。
select t1.Account, coalesce(t2.Date, t1.Date)
from t1
left outer join t2
on t2.Account = t1.Account
关于sql - 如何通过比较两个字段并考虑性能来连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53015165/