如果我们在SQL Server中有下列数据的表:SQL服务器 - 计数会话 - 差距和岛屿
ID Log_Time
1110 2016-10-31 20:34:50.000
1110 2016-10-31 20:34:58.000
1110 2016-10-31 20:35:03.000
1110 2016-11-01 01:28:29.000
1110 2016-11-01 01:28:33.000
1110 2016-11-01 01:28:37.000
1110 2016-11-01 01:28:42.000
1110 2016-11-01 01:28:46.000
1110 2016-11-01 01:28:50.000
1110 2016-11-01 01:28:54.000
1110 2016-11-01 01:28:59.000
1110 2016-11-01 01:29:03.000
假设每个用户操作生成log_time条目。该业务计算用于计费目的的会话数量 - 从会话1开始,如果时间差超过一个小时,则将会话计数增加1.
这是一个相当大的表格与不同的用户ID。我已经尝试了用于循环遍历不同用户的游标组合和通过执行逐行迭代的会话计数来增加WHILE LOOPS。完成这个表格需要很长时间,当这个表格变得更大时,这可能不是正确的方法。必须有更好的方法来做到这一点。任何指针?
的结果集我需要的是这样的:
ID SessionCount
1110 28
1145 42
1116 38