繁体   English   中英

如何在SQL Server中的两个交叉列之间找到以秒为单位的时间

[英]How to find time in seconds between two cross columns in SQL Server

表DATA_CUBE的以下示例数据在varchar(255)中。 它有180万行,没有主键。 我想返回自行车在车站停留的平均时间(以秒为单位)。 首先,我跑了一个查询通过1,4,5.From返回结果的顺序如下快照,我想知道的是,如果有可能,计算之间的时间差, stoptime 1行,并starttime由bikeid行2组使用SQL?

样本数据

您真正想要的功能是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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM