我有一些关于用户的数据'网站上的会话长度(即他们活跃的时间)。
它看起来像这样:
cust_id dt started_at stopped_at length rank
10046493 28/10/2015 27/10/2015 23:45 28/10/2015 00:31 00:46 1
10046493 28/10/2015 28/10/2015 00:31 28/10/2015 00:43 00:12 2
10046493 28/10/2015 28/10/2015 00:43 28/10/2015 00:51 00:08 3
10046493 28/10/2015 28/10/2015 17:35 28/10/2015 18:03 00:28 4
每天可能有1个会话,但有些客户的负载更多(例如,我发现有85个以上的会员)。
我需要做的是检查一个会话结束和下一个会话开始之间的时差。如果差异小于30分钟,那么我需要将它们计为一个会话并计算总长度,否则它们应该是两个单独的会话。
所以我需要一个像这样的代码:
if rank2_start > (rank1_stop + 30) then DIFFERENT
if rank2_start < (rank1_stop + 30) then SAME >>>> in this case I also need rank2_stop - rank1_start (i.e. the difference between the two to get the total session length)
因为每天会有这么多会话,所以在列出rank1,rank2,rank3等时不能选择做大量的案例。
另一个问题是有人可能在半小时内开始了6次会议,所以他们都需要计算为一个。
有谁知道怎么做?如果它的超级复杂性很复杂,或者无法完成可用的数据,那也很好 - 这对我的分析来说只是一个很好的加分,但不是必需的。
由于