一個表的樣子:如何在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