ORACLE SQL查询记录与上一条记录的时间间隔小于1分钟

ORACLE SQL查询记录与上一条记录的时间间隔小于1分钟,sql,oracle,datetime,lag,lead,Sql,Oracle,Datetime,Lag,Lead,从输入表查询时间差小于或等于1分钟的所有记录 所需输出 >>>>>sqlfiddle这是否符合您的要求 select * from (select a.*, lag(sdt) over (partition by id order by sdt) as prevsdt, lead(sdt) over (partition by id order by sdt) as nextsdt from table_a a ) a w

从输入表查询时间差小于或等于1分钟的所有记录

所需输出


>>>>>sqlfiddle这是否符合您的要求

select *
from (select a.*,
             lag(sdt) over (partition by id order by sdt) as prevsdt,
             lead(sdt) over (partition by id order by sdt) as nextsdt
      from table_a a
     ) a
where sdt - prevsdt <= 1/(24*60) or
      nextsdt - sdt <= 1/(24*60);

它在上产生所需的输出。

+1击败我。使用滞后和超前似乎是解决这个问题的方法。只是吹毛求疵:我想你并不真的需要内部查询,你可以在第一次选择时直接使用分析函数。@rsenna你不能在WHERE中使用分析函数。