我有这张桌子-
----------------------------------------------
ID | user | eventID | type | timestamp
----------------------------------------------
1 | 1 | 1 | 3 | 2019-02-08 15:30:00
2 | 1 | 1 | 3 | 2019-02-08 15:31:00
3 | 1 | 1 | 9 | 2019-02-08 15:31:30
4 | 2 | 1 | 3 | 2019-02-08 15:32:00
5 | 2 | 1 | 3 | 2019-02-08 15:32:45
6 | 3 | 1 | 3 | 2019-02-08 15:33:00
7 | 3 | 1 | 9 | 2019-02-08 15:34:00
8 | 3 | 2 | 3 | 2019-02-08 15:35:00
9 | 3 | 2 | 9 | 2019-02-08 15:36:00
我正在尝试为每个用户找到每个事件的类型3和类型9之间的时间差。
例如,此表的输出为-
----------------------------------------------
ID | user | eventID | timeDifference in sec
----------------------------------------------
1 | 1 | 1 | 30
2 | 3 | 1 | 60
3 | 3 | 2 | 60
如您所见,每个用户可以有多个事件,并且不同的用户也可以有相同的事件。有些用户和事件同时具有两种类型,有些则没有。可能有多个类型3和类型9事件,但我希望彼此之间最接近的事件之间存在差异。而且类型9总是在类型3之后发生。如果有帮助,我还有一个单独的列,该列具有用于类型9事件的不同ID。因此,我试图为每个事件,每个用户找出这两种类型之间的时差。
我该怎么做?
编辑-我忘了提到对于每个用户,每个事件可以有多对3型和9型事件。所以我想要所有这些对的差异,彼此相邻,而不仅仅是每组的差异。
对于此表-
----------------------------------------------
ID | user | eventID | type | timestamp
----------------------------------------------
1 | 1 | 1 | 3 | 2019-02-08 15:30:00
2 | 1 | 1 | 3 | 2019-02-08 15:31:00
3 | 1 | 1 | 9 | 2019-02-08 15:31:30
4 | 2 | 1 | 3 | 2019-02-08 15:32:00
5 | 2 | 1 | 3 | 2019-02-08 15:32:45
6 | 3 | 1 | 3 | 2019-02-08 15:33:00
7 | 3 | 1 | 9 | 2019-02-08 15:34:00
8 | 3 | 2 | 3 | 2019-02-08 15:35:00
9 | 3 | 2 | 9 | 2019-02-08 15:36:00
10 | 3 | 2 | 3 | 2019-02-08 15:37:00
11 | 3 | 2 | 9 | 2019-02-08 15:37:40
输出应为-
----------------------------------------------
ID | user | eventID | timeDifference in sec
----------------------------------------------
1 | 1 | 1 | 30
2 | 3 | 1 | 60
3 | 3 | 2 | 60
4 | 3 | 2 | 40
edit-我在编辑中提出了一个不同的问题。原来的问题已经回答了。
答案 0 :(得分:1)
这回答了问题的原始版本:
Drop
这将返回最早的“ 9”时间戳和最新的“ 3”时间戳之间的差。