0

これを解決するのを手伝ってください。

Oracleデータベースを使用していて、毎秒4〜5個のレコードが挿入されているテーブルがあるため、少なくとも15分間タグ付けが行われなかった場合は、丸1日を確認する必要があります。

4

2 に答える 2

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 分を超えるギャップが発生します。

于 2013-03-22T16:42:05.343 に答える
0

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
于 2013-03-22T17:19:47.160 に答える