需要使用Sql查询来获取表中备用连续行的差异

时间:2011-07-02 09:33:36

标签: sql

任何人都可以帮我解决以下问题。

我的表:

pkId | DateTime
------------------
 1     2011-07-01 09:33:00
 5     2011-07-01 14:01:00
 7     2011-07-01 14:06:00
 9     2011-07-01 19:18:00

我需要获得第一行和第二行,第三行和第四行之间的时间差异。

结果:

(14:01:00 - 09:33:00)
(19:18:00 - 14:06:00)

此致 巴拉斯

1 个答案:

答案 0 :(得分:0)

您可以在oracle中使用滞后函数,如下所示 -

select * from 
 (
     select t_1.*,datetime - LAG(datetime , 1, 0) OVER (ORDER BY pkId), rownum c_1 from 
      ( 
              select pkId , DateTime FROM my_table order by pkId 
      ) t_1
 )
where c_1%2 = 0

我认为你可以理解这一个..不需要解释..对吗??