【发布时间】:2020-01-16 16:05:36
【问题描述】:
在 salesforce_event 中,我们有 created_date、account_id 和 who_id。在 salesforce_task 中,我们有 created_date、close_date、account_id 和 who_id。
event 和task 可以加入account_id(如果可用)或who_id。所以看起来需要有 2 个左连接。
如果 task close_date 在事件创建的最后 30 天。
有没有一种有效的方法来实现这一点?我所拥有的在下面,它一直在运行,而且似乎也不正确
select
se.id,
min(se.created_date) - min(coalesce(st1.close_date,st.close_date))
from salesforce_event se
left join salesforce_task st on se.who_id = st.who_id and st.close_date >= se.created_date - 30 and st.close_date <= se.created_date
left join salesforce_task st1 on se.account_id = st1.account_id and st1.close_date >= se.created_date - 30 and st1.close_date <= se.created_date group by 1
谢谢!
【问题讨论】:
-
所以 account_id 在相同情况下为 NULL,如果 account_id 不是,那么 who_id 将为 NULL 对吗? (反之亦然)
-
@RonakDhoot 实际上 who_id 永远不会为空——我们只想在 account_id 可用时使用它
标签: sql salesforce amazon-redshift correlated-subquery