oracle plsql 怎么在一个集合里做时间差值运算?

如图所示,首次任务开始时间已经做过排序,这样时间就呈现递增的趋势往下,但是第一次的结束时间2020/9/22 9:31:06 到下一次开始时间2020/9/22 9:31:12 怎么做时间差值运算,以下类推,且每行返回一个这样的差值

第1个回答  2020-10-11
也就是上一行,当然如果本身没有排序,那么你的前面应该有id字段按照id字段计算就可以了。
上一行有一个函数lead,那么我们就可以操作了
首次任务开始时间- lead(首次任务完成时间, 1, null) over(order by 首次开始完成时间)
如果不能直接操作,那么就先 lead(首次任务完成时间, 1, null) over(order by 首次开始完成时间)查出来,然后取个别名再操作就好了。
如果是以前的不管,也是这么操作,后面加上where条件就行。
当然如果你的开始时间和结束时间是分开写的,那么也可以直接用max来写,当然前提是你的开始时间和结束时间不是同事写入表中的,不然你可能需要在过程中才能计算(我说的过程就是记录开始时间的那个地方)。
相似回答