私のギャップ検出は、時間差として設定したものをすべて拾い上げ、それに基づいて間隔ごとに実行しているようです。
だからここに私のデータ構造と私が何を求めているかの説明があります:
次のように設定されたデータベースがあります。
(Schema Name)
Historical
-CID int UQ AI NN
-ID Int PK
-Location Varchar(255)
-Status Varchar(255)
-Time datetime
私のデータは次のようになります (例: 選択した ID の 5 行)
433275 | 97 | MyLocation | OK | 2013-08-20 13:05:54
433275 | 97 | MyLocation | OK | 2013-08-20 13:00:54
433275 | 97 | MyLocation | OK | 2013-08-20 12:25:54
433275 | 97 | MyLocation | OK | 2013-08-20 12:20:54
433275 | 97 | MyLocation | OK | 2013-08-20 12:15:54
上記の場合、ID 97 の 12:25:54 -> 13:00 のデータが欠落していることに気付くでしょう。次のことを知らせるレポートを作成しようとしています: ダウンタイムの開始、ダウンタイムの期間、ダウンタイムの終わり
これが私のコードです(php -> mysql)(動作していません)。
select *from (
SELECT
y.*,
TIMESTAMPDIFF(MINUTE, @prevDT, `Time`) AS timedifference,
@prevDT := `Time`
FROM ddHistorical y,
(SELECT @prevDT:=(SELECT MIN(`Time`) FROM ddHistorical)) vars
Where ID = '". mysql_real_escape_string($ID)."'
HAVING timedifference > 16
) s
order by Time desc
Limit 25";