SQL Server 2008 を使用していますが、連続する 2 つのレコードを比較するクエリを作成する際に助けが必要です。
select recordDate
from SiteHistory
where siteId = 556145
and isRecent = 0
and isRunning = 1
order by
recordDate DESC
次のような約2000行が表示されます。
recordDate
-----------------------
2013-05-08 20:04:23.357
2013-05-08 19:45:26.417
2013-05-08 19:30:24.810
2013-05-08 19:17:22.843
2013-05-08 19:00:16.017
2013-05-08 18:44:14.230
.....
.....
次に、各行の日付を次の行と比較し、連続する 2 つの日付の差が 15 分を超える回数をカウントする必要があります。これは私がこれまでに思いついたものです:
;with temp as(
select row_number()over(order by recordDate DESC)as 'row', recordDate
from SiteHistory
where siteId = 556145 and isRecent =0 and isRunning=1
)
select COUNT(*) as Count from temp t1
INNER JOIN temp t2 ON t2.row = t1.row+1
where DATEDIFF(mm,t1.recordDate,t2.recordDate)>15
しかし、これは私に希望を与えません。私の要件に合わせてこれを修正する方法を教えてください。