我有一些代表不同“行动”的数据。这些“动作”共同构成一个“事件”。
数据如下所示:
EventID | UserID | Action | TimeStamp
--------------+------------+------------+-------------------------
1 | 111 | Start | 2012-01-01 08:00:00
1 | 111 | Stop | 2012-01-01 08:59:59
1 | 999 | Start | 2012-01-01 09:00:00
1 | 999 | Stop | 2012-01-01 09:59:59
1 | 111 | Start | 2012-01-01 10:00:00
1 | 111 | Stop | 2012-01-01 10:30:00
如您所见,每个“事件”都由一个或多个“动作”(或我认为的“子事件”)组成。
我需要识别每个“子事件”并给它一个标识符。这就是我要找的:
EventID | SubeventID | UserID | Action | TimeStamp
--------------+----------------+------------+------------+-------------------------
1 | 1 | 111 | Start | 2012-01-01 08:00:00
1 | 1 | 111 | Stop | 2012-01-01 08:59:59
1 | 2 | 999 | Start | 2012-01-01 09:00:00
1 | 2 | 999 | Stop | 2012-01-01 09:59:59
1 | 3 | 111 | Start | 2012-01-01 10:00:00
1 | 3 | 111 | Stop | 2012-01-01 10:30:00
我需要一些可以开始计数的东西,但只有在某些列具有特定值时才会增加(比如“Action”='Start')。
我一直在尝试为此使用窗口函数,但收效甚微。我似乎无法找到我认为可行的解决方案......有什么想法吗?