一个表的样子:如何在MS SQL Server中减去两个连续的行?
id | location | datetime
------| ---------| --------
CD123 | loc001 | 2010-10-21 13:30:15
ZY123 | loc001 | 2010-10-21 13:40:15
YU333 | loc001 | 2010-10-21 13:41:00
AB456 | loc002 | 2011-1-21 14:30:30
FG121 | loc002 | 2011-1-21 14:31:00
BN010 | loc002 | 2011-1-21 14:32:00
假设表已经按升序排序的日期时间。我正在尝试查找位于之间的两个连续行之间的时间间隔(以秒为单位)。
结果表应该是:
| location | elapse
| loc001 | 600
| loc001 | 45
| loc002 | 30
| loc002 | 60
由于id
是随机产生的,它是很难写出像a.id = b.id + 1
在查询中。只有相同位置的行被连续减去,而不是跨越不同的位置。
我应该如何在MS SQL Server中编写查询来完成它?
添加一个 “新ID” 与日期时间排序的ROW_NUMBER。你可以做你想要的“a.id = b.id + 1” – mxix