これを解決するのを手伝ってください。
Oracleデータベースを使用していて、毎秒4〜5個のレコードが挿入されているテーブルがあるため、少なくとも15分間タグ付けが行われなかった場合は、丸1日を確認する必要があります。
これを使用lag
して確認できます。
ts
たとえば、フィールドがデータ型で呼び出されると仮定しますtimestamp
。
select ts , prior_ts
from (select ts,
lag(ts) over (order by ts) prior_ts,
case
when ts - lag(ts) over (order by ts) > numtodsinterval(15, 'minute')
then 'x'
end gap_flag
from your_table
where ts between A and B -- limit checks to a range.
)
where gap_flag = 'x';
そのため、15 分を超えるギャップが発生します。
EXTRACTを使用して差分を取得する一般的な例。タイムスタンプ-Dazzalの例に何かを追加するのは難しいです:
SELECT (end_mm-start_mm) minutes_diff
FROM
( -- can extract hours and seconds the same way --
SELECT EXTRACT(MINUTE From start_ts) start_mm
, EXTRACT(MINUTE From end_ts ) end_mm
FROM
( -- initial data --
SELECT timestamp '2013-03-22 13:10:55' start_ts
, timestamp '2013-03-22 13:26:35' end_ts
FROM dual
))
/
Output: 16 minutes = 26 -10