Chu*_*dro 2 sql hive join teradata
这应该很简单但我无法得到它.我需要做一个选择来为某些帐户获取更新的日期值.
我从这里开始,T1:
+----------+---------+
| date | account |
+----------+---------+
| 4/1/2018 | 1 |
| 4/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | 4 |
| 4/1/2018 | 5 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)
然后在T2中更新一些日期:
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)
如何将此输出输入T3,仅更新这些帐户?
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | 4 |
| 4/1/2018 | 5 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)
我可以加入帐号,但那些没有改变的是什么?如何捕捉那些?
此外,T1有大约800万条记录,因此性能将是一个因素.从Teradata中提取,加载到Hive中.
谢谢!
只是对以前的好答案的补充..尝试使用它coalesce也让我知道它是否提高了性能.
select t1.Account, coalesce(t2.Date, t1.Date)
from t1
left outer join t2
on t2.Account = t1.Account
Run Code Online (Sandbox Code Playgroud)