Sql server 2012 指定ID的两行之间的时间差
我试图找出两个ID相同的行之间的时间差(以秒为单位)Sql server 2012 指定ID的两行之间的时间差,sql-server-2012,Sql Server 2012,我试图找出两个ID相同的行之间的时间差(以秒为单位) SELECT DATEDIFF(second, pTimeStamp, TimeStamp), q.* FROM ( SELECT *, LAG(TimeStamp) OVER (ORDER BY TimeStamp) pTimeStamp FROM data ) q WHERE pTimeStamp IS NOT NULL 这是一
SELECT DATEDIFF(second, pTimeStamp, TimeStamp), q.*
FROM (
SELECT *,
LAG(TimeStamp) OVER (ORDER BY TimeStamp) pTimeStamp
FROM data
) q
WHERE pTimeStamp IS NOT NULL
这是一张简单的桌子
该表按myid和时间戳排序。我试图得到两行之间具有相同myid的总秒数
这是我想到的。此查询的唯一问题是,它计算所有记录的时间差,但不计算相同ID的时间差
SELECT DATEDIFF(second, pTimeStamp, TimeStamp), q.*
FROM (
SELECT *,
LAG(TimeStamp) OVER (ORDER BY TimeStamp) pTimeStamp
FROM data
) q
WHERE pTimeStamp IS NOT NULL
这是输出
我只希望输出以黄色突出显示
有什么建议吗
修复方法只是将带有分区的窗口缩小到具有相同ID的行:
修复方法只是将带有分区的窗口缩小到具有相同ID的行:
Add partition by IDTables不按任何东西排序,查询和结果集是。查询中没有按ID排序或分区的地方,因此结果也不是按ID排序的。@shawnt00谢谢!这就是我需要的。若你们把你们的评论写为答案,我将被接受为正确答案。查询中没有按ID排序或分区的地方,因此结果也不是按ID排序的。@shawnt00谢谢!这就是我需要的。如果你写下你的评论作为答案,我将被接受为正确答案。