【发布时间】:2018-11-15 16:44:52
【问题描述】:
我有两张桌子。第一个表如下所示:
CompanyID | TIMESTAMP | NewsitemID
---------------------------------------------
ID1 | 2000-01-06 15:00:00 | 1
ID2 | 2000-01-06 15:32:00 | 2
ID1 | 2000-01-07 14:00:00 | 3
ID3 | 2000-01-07 17:00:00 | 4
现在我想更新时间戳,如果它位于第二个表中给出的两个连续关闭时间之间。新的时间戳应该是对应的 SelectedTimestamp 指示的两个连续条目中的第二个。这是第二张表:
Closingtime | SelectedTimestamp
-----------------------------------------
2000-01-05 16:00:00 | --
2000-01-06 16:00:00 | 2000-01-06 16:00:00
2000-01-07 16:00:00 | 2000-01-07 16:00:00
2000-01-10 16:00:00 | 2000-01-10 16:00:00
所以,我想要实现的是:
CompanyID | TIMESTAMP | NewsitemID | NewTimestamp
-------------------------------------------------------------------
ID1 | 2000-01-06 15:00:00 | 1 | 2000-01-06 16:00:00
ID2 | 2000-01-06 15:32:00 | 2 | 2000-01-06 16:00:00
ID1 | 2000-01-07 14:00:00 | 3 | 2000-01-07 16:00:00
ID3 | 2000-01-07 17:00:00 | 4 | 2000-01-10 16:00:00
但我对 Snowflake SQL 还是很陌生,即使启动查询也有问题。我想我可能会在
的方向上使用一些东西SELECT SelectedTimestamp
WHERE TIMESTAMP BETWEEN lower_bound AND upper_bound
但我不知道如何“循环”通过 ClosingTime 给出的下限和上限。
非常感谢任何关于我如何在这里进行的提示!
【问题讨论】:
-
您的问题可能需要一些澄清,请参阅我的评论。
-
谢谢,希望现在更清楚了!
标签: sql correlated-subquery snowflake-cloud-data-platform