首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析日志表- Oracle 11g

分析日志表- Oracle 11g
EN

Stack Overflow用户
提问于 2016-04-04 12:49:33
回答 1查看 47关注 0票数 0

我在Oracle 11g上有一张桌子:

代码语言:javascript
复制
CREATE TABLE USER.HISTORY_LOG
(
  ID                       NUMBER,
  DATE                     DATE,
  COUNT_INSERTED_ROWS      NUMBER,
  EXEC_TIME                VARCHAR2(50 BYTE)
)

一些数据:

代码语言:javascript
复制
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

这个表是由c#中的控制台应用写来的,它每3分钟“永远”运行一次.但它可能会因某些服务器的问题而崩溃,比如不可用性。我必须检查一下是否有时间--什么时候--发生了这种事。我如何使用SQL来做到这一点呢?我需要的是这样的东西:

在日期X和Y之间,执行时间超过3分钟。

我想用SQL来解决.有什么办法我能做到吗?我承认,我没有办法构建一个查询来完成这个任务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-04 13:03:26

你可以尝试这样的方法:

代码语言:javascript
复制
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

这将计算每一行的前播种记录,并检查两个日期之间以分钟为单位的差异是否大于4。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36403156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档