可以使用分析功能来折叠这些记录吗
ssid start_time end_time op_code
65F 08/JAN/2013 14:18:33 08/JAN/2013 14:18:34 2
65F 08/JAN/2013 14:18:53 08/JAN/2013 14:18:54 2
65F 08/JAN/2013 14:18:55 08/JAN/2013 14:18:59 3
65F 08/JAN/2013 14:19:33 08/JAN/2013 14:19:34 2
65F 08/JAN/2013 14:19:53 08/JAN/2013 14:19:54 2
65F 08/JAN/2013 14:19:55 08/JAN/2013 14:19:59 3
72F 08/JAN/2013 14:20:55 08/JAN/2013 14:20:56 2
72F 08/JAN/2013 14:19:57 08/JAN/2013 14:19:59 2
对此
ssid start_time end_time c_dt op_code
65F 08/JAN/2013 14:18:33 08/JAN/2013 14:18:54 08/JAN/2013 14:18:59 2
65F 08/JAN/2013 14:19:33 08/JAN/2013 14:19:54 08/JAN/2013 14:19:59 2
72F 08/JAN/2013 14:19:57 08/JAN/2013 14:20:56
或者我必须只在 for 循环中处理它。我在 Oracle 11gR2
如果下一个 op_code 为 2,则 end_time 成为下一条记录的 end_time,我们继续替换该记录的结束时间,直到具有 op_code 3 的相同 ssid 到达。当 op_code 3 的记录到达时,我们生成 c_dt,它是具有相同 ssid 但 op_code 3 的记录的结束时间。我们为下一条记录重新开始这个过程
如果我们没有为特定 ssid 找到 op_code 3 的记录,则 c_dt 将为空,但 end_time 将是具有相同 ssid 的下一条记录的 end_time。
希望我清楚这个棘手的逻辑