【发布时间】:2021-06-08 02:37:31
【问题描述】:
所以我有一些看起来像这样的数据:
USER_ID text_field TIMESTAMP
1 0000001 dragon 2021-06-04 21:23:30.612
2 0000001 dragon 2021-06-04 21:23:55.411
3 0000001 dragon 2021-06-04 21:27:35.418
4 0000002 pitbull 2021-06-04 19:17:53.211
5 0000002 dragon 2021-06-04 19:47:53.211
6 0000002 dragon 2021-06-04 19:57:53.211
7 0000003 dragon 2021-06-05 10:00:53.211
8 0000003 dragon 2021-06-05 10:02:53.211
9 0000003 earth 2021-06-05 10:04:53.211
10 0000003 dragon 2021-06-05 10:06:53.211
11 0000003 dragon 2021-06-05 10:08:53.211
我希望看到的是带有单词dragon的结果条目的第一个和最后一个时间戳之间的差异
所以在 ID 0000001 中,我们的所有条目都为 dragon,所以对于这种情况,我想要第 3 行减去第 1 行。这是所有以龙和 ID = 0000001 为特征的条目的最大值(时间戳)-最小值(时间戳)。
对于 ID 2,请注意并非所有都是龙,但我只希望 dragon 条目具有相同的差异。
ID 也可能有非结果性的 dragon 条目,例如 ID 0000003。这里我需要两个块中的结果性条目有所不同。这意味着对于 ID 0000003,我需要row 8 - row 7 和row 11 - row 10。
最终输出:
USER_ID time_diff
0000001 (2021-06-04 21:27:35.418 - 2021-06-04 21:23:30.612)
0000002 (2021-06-04 19:57:53.211 - 2021-06-04 19:47:53.211)
0000003 (2021-06-05 10:02:53.211 - 2021-06-05 10:00:53.211)
0000003 (2021-06-05 10:08:53.211 - 2021-06-05 10:06:53.211)
显然,这些只是 time_diff 的方程式,我真的很想在这个专栏中有所不同。
【问题讨论】:
-
如果第 7 行不存在怎么办? time_diff 如何确定?
标签: sql timestamp snowflake-cloud-data-platform