2016-04-04 11 views
0

を:ログテーブル分析 - Oracle 11gのIは、Oracle 11gの上でこのテーブルを持っている

CREATE TABLE USER.HISTORY_LOG 
(
    ID      NUMBER, 
    DATE      DATE, 
    COUNT_INSERTED_ROWS  NUMBER, 
    EXEC_TIME    VARCHAR2(50 BYTE) 
) 

一部のデータ:この表は、すべての3を実行し、C#で書かコンソールアプリ、によって供給され

ID  DATE    COUNT_INSERTED_ROWS EXEC_TIME 

6356 04/04/2016 09:36:03 1074 00h:00m:58s:769ms 
6355 04/04/2016 09:33:00 1074 00h:00m:56s:221ms 
6354 04/04/2016 09:30:11 1074 00h:01m:06s:719ms 
6353 04/04/2016 09:27:13 1074 00h:01m:08s:977ms 
6352 04/04/2016 09:24:13 1074 00h:01m:09s:361ms 
6351 04/04/2016 09:21:12 1074 00h:01m:07s:685ms 
6350 04/04/2016 09:18:11 1074 00h:01m:06s:657ms 
6349 04/04/2016 09:15:01 1074 00h:00m:57s:074ms 

分 "永遠に" ... しかし、それは利用できないようなサーバの問題によってクラッシュする可能性があります。 SQLを使ってどうすればいいですか? 私が必要とするのは、次のようなものです。

日付XとYの間では、実行に3分以上かかりました。

私はSQLを使用して解決したいと思います....私はそれを行うことができる方法はありますか?私はそれを行うための質問を作成するアイデアがないと告白します。

+1

あなたができる場合、これは、行ごとに、先行レコードとチェックを計算しますこのために 'lag'または' lead'解析関数を使います。 [some help](https://oracle-base.com/articles/misc/lag-lead-analytic-functions) –

+0

私は何の手掛かりも持っていませんが、Oracleのマニュアルを見てもDATE列では機能しないようです。 ... :( –

+0

あなたが受け入れた答え..私はそれのようなものを提案していました.. あなたの答えを知ってうれしいです.. –

答えて

2

あなたはこのような何かを試すことができます。

select * 
from (
    select lag(date_)over (order by date_) as date_before_ko, 
      date_ as date_after_ko, 
      floor((date_ - lag(date_) over (order by date_))*24*60) as minutes_passed 
    from HISTORY_LOG 
) 
where minutes_passed > 4 

2つの日付の間の分の差が4以上

+0

完璧!ありがとう男:) –