表DATA_CUBE的以下示例数据在varchar(255)中。它有180万行,没有主键。我想返回自行车在车站停留的平均时间(以秒为单位)。首先,我运行了一个查询以按1,4,5返回结果顺序。从下面的快照中,我想知道的是是否有可能使用SQL计算出Bikeidstoptime
的第1行和starttime
第2行组之间的时间差?
您真正想要的功能是lead()
,但是SQL Server 2008不支持该功能。这是使用方法outer apply
:
select dc.*, datediff(second, dc.stoptime, nextdc.starttime) as SecondsToNext
from data_cube dc outer apply
(select top 1 dc2.*
from data_cube dc2
where dc2.bikeid = dc.bikeid and dc2.starttime >= dc.stoptime
order by dc2.starttime
) nextdc;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句