ORACLE SQL查询记录与上一条记录的时间间隔小于1分钟
从输入表查询时间差小于或等于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
>>>>>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中使用分析函数。