分析関数を使用して、これらのレコードをこれから折りたたむことができますか?
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 のレコードが到着すると、ssid は同じで op_code 3 のレコードの end_time である c_dt を生成します。次のレコードに対してこのプロセスを最初からやり直します。
特定の ssid の op_code 3 を持つレコードが見つからない場合、c_dt は null になりますが、end_time は同じ ssid を持つ次のレコードの end_time になります。
このトリッキーなロジックが明確であることを願っています