一组数据存在于表中,有个时间字段,记录了数据插入的时间。正常情况下,每10分钟就应该插入一条数据。但有的时候由于系统故障,造成在某个该插入数据的时刻没有插入数据。如何用SQL确定数据缺失的时刻。谢谢

解决方案 »

  1.   

    能确认十分钟插入数据这个时间一定就是十分钟,
    如果是的话,那就和这个时间来判断!通过分析函数LEAD来实现!
    前面的时间减去后面的时间>10分钟就判断没有插入数据!
      

  2.   

    给你个例子,改改就可以了。
    相邻招聘日期差30天的例子:
    SELECT *
      FROM (SELECT S.*, LEAD(S.HIREDATE) OVER(ORDER BY HIREDATE) - S.HIREDATE CC
              FROM SCOTT.EMP S)
     WHERE CC >= 30;
      

  3.   


    SQL> select id,to_char(indate,'hh24:mi:ss') from tbl;                                     ID TO_CHAR(INDATE,'HH24:MI:SS')
    --------------------------------------- ----------------------------
                                          1 10:00:00
                                          2 10:10:00
                                          3 10:20:00
                                          4 10:40:00
                                          5 10:50:00
                                          6 11:00:00
    SQL> select id,(indate-LAG(indate,1,null)over(order by indate))*1440 rm from tbl;                                     ID         RM
    --------------------------------------- ----------
                                          1 
                                          2         10
                                          3         10
                                          4         20
                                          5         10
                                          6         106 rows selected