如何比较连续行的时间戳

时间:2017-03-22 15:13:01

标签: sql oracle

我有一个表,我希望按时间戳desc排序,然后比较所有连续行以确定每行之间的差异。从那里,我想找到差异大于~2小时的所有行。

我坚持如何实际比较表格中的连续行。任何帮助将不胜感激。

我正在使用Oracle SQL Developer 3.2

1 个答案:

答案 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