我有一个表,我希望按时间戳desc排序,然后比较所有连续行以确定每行之间的差异。从那里,我想找到差异大于~2小时的所有行。
我坚持如何实际比较表格中的连续行。任何帮助将不胜感激。
我正在使用Oracle SQL Developer 3.2
答案 0 :(得分:3)
您没有向我们展示您的表格定义,但是这样的话:
select *
from (
select t.*,
t.timestamp_column,
t.timestamp_column - lag(timestamp_column) over (order by timestamp_column) as diff
from the_table t
) x
where diff > interval '2' hour;
这假定timestamp_column
被定义为timestamp
而不是date
(否则差异的结果将不会是interval
)