1

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

しかし、これは私に希望を与えません。私の要件に合わせてこれを修正する方法を教えてください。

4

3 に答える 3

2

「mm」は日付の差を月単位で示します

where DATEDIFF(mm,t1.recordDate,t2.recordDate)>15

「mm」を「分」に置き換えます

where DATEDIFF(minute,t1.recordDate,t2.recordDate)>15
于 2013-07-23T20:05:14.620 に答える