SQL:比较两列不同行的差异并与值进行比较

时间:2016-03-29 10:53:08

标签: sql oracle

enter image description here

所以,我有下表。

  • DT - date,
  • NUM_A - 数字,
  • DUR - 持续时间(秒)。

    表由DT订购。 当两个接近的行(27和28行)具有相同的DUR值(33)时,则与 DT(第27行) - DT(第28行)值进行比较。 如果DUR> DT27-DT28然后我想要第27行(最早的记录)在选择结果中。

1 个答案:

答案 0 :(得分:0)

在Oracle中,您可以这样做:

select t.*
from (select t.*,
             lead(dur) over (order by dt) as next_dur,
             lead(dt) over (order by dt) as next_dt
      from t
     ) t
where next_dur = dur and
      dur / (24*60*60) > (next_dt - dt);

您的问题未提及NUM_A列,但您可能希望在分析函数中使用partition by NUM_A