如果我們在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