0

「記録された」日時フィールドを持つテーブルが与えられます。

テーブルが記録された順に並べ替えられているときに、記録された日付/時刻がその前の記録から 5 分以上経過しているすべての記録を選択するにはどうすればよいですか。別の言い方をすれば、5 分を超えるレコード間のギャップはどこにありますか。

現時点では、セットを反復処理し、レコード n をレコード n + 1 と比較することにより、C# でこれを行っています。

できればカーソルを使用せずに、SQLでこれを行うことは可能ですか?

4

1 に答える 1

1

CTEアプローチでこれはどうですか。

WITH mrows AS
(
     SELECT  *, ROW_NUMBER() OVER (ORDER BY recorded) AS rn
     FROM    Table_name
)


SELECT * 
FROM   mrows mr1 INNER JOIN mrows mr2
ON     mr1.rn = mr2.rn - 1
WHERE  datediff(mm, mr1.recorded, mr2.recorded) = 5;
于 2013-05-03T05:00:16.800 に答える