【发布时间】:2021-04-03 17:21:18
【问题描述】:
假设我有这样的数据:
ID GROUP TIMESTAMP1 col_OTHER TIMESTAMP2
001 AA 2021-04-02 15:02:33.319 mangos
002 BB kiwis
004 AA 2021-04-02 03:51:35.279 oranges
003 DD 2021-04-03 18:24:23.469 oranges 2021-04-03 18:22:23.469
003 DD bananas 2021-04-03 15:02:33.319
002 CC 2021-04-04 11:02:51.313 apples 2021-04-04 11:03:51.313
所以我想只过滤 TIMESTAMP2 在 TIMESTAMP1 之后的行。我们仅在 4 月 3 日开始收集 TIMESTAMP2 的数据,此后没有空值,但我们没有这之前的数据。所以我想在这个日期之后应用这个条件。
此外,我们有时在 TIMESTAMP1 中有空值,我认为我的 coalesce() 解决了这个问题...?
最终输出:
ID GROUP TIMESTAMP1 col_OTHER TIMESTAMP2
001 AA 2021-04-02 15:02:33.319 mangos
002 BB kiwis
004 AA 2021-04-02 03:51:35.279 oranges
003 DD bananas 2021-04-03 15:02:33.319
002 CC 2021-04-04 11:02:51.313 apples 2021-04-04 11:03:51.313
这是我目前所拥有的:
SELECT *
FROM dt
WHERE coalesce(TIMESTAMP1, '1970-01-01') < TIMESTAMP2
我也很好奇如何删除我在 TIMESTAMP1 和 TIMESTAMP2 中都有 NULL 的实例
【问题讨论】:
-
你的主键是什么?