私はこの形式でレコードを持つテーブルを持っている:このプロセスのカーソルの代わりに?
SPECIAL_ID | OTHER_ID | NAME | TIMESTAMP
私はこれをベースにして新しいテーブルを作成しますが、唯一の少なくとも25分間隔前のものからあるレコードを取得する必要があります。間隔は一貫していません。レコード1から始めると、レコード1のタイムスタンプから少なくとも25分後の次のレコードを取得する必要があります。これは新しいテーブルのレコード2になります。そして、抽出された前のレコードの25分後の次のレコード。だから、ここの情報の一例である:
AAA | 1 | WHATEVER2 | 2016-11-20 00:00:00
BCD | 2 | WHATEVER00 | 2016-11-20 00:02:00
AAA | 3 | WHATEVER01 | 2016-11-20 00:09:00
AAA | 4 | WHATEVER55 | 2016-11-20 00:20:00
XYZ | 5 | WHATEVER | 2016-11-20 00:24:00
AAA | 6 | WHATEVER11 | 2016-11-20 00:45:00
QRS | 7 | WHATEVER | 2016-11-20 00:46:00
QRS | 8 | WHATEVER12 | 2016-11-20 00:59:00
AAA | 9 | WHATEVER12 | 2016-11-20 01:02:00
AAA |10 | WHATEVER12 | 2016-11-20 01:17:00
そして、私は何をしようとしています:
AAA | 1 | WHATEVER2 | 2016-11-20 00:00:00
AAA | 6 | WHATEVER11 | 2016-11-20 00:45:00
AAA |10 | WHATEVER12 | 2016-11-20 01:17:00
私は、カーソルを使用して管理し、レコードの小さなセットでそれをテストしました。それは働いた....しかし、私は百万のこのように分析する必要があります。カーソルはただのトラブルを求めているようです。
これを行うより良い方法はありますか?
私はSQLサーバー2008に固執していますので、lead()
とlag()
は質問になりません。
大変助かりました。これは、SQL Server 2008の可能性(計算コスト)ソリューションであることができ