2016-06-23 93 views
0

我有一張表,其中包含有關在城市周圍駕車的信息。每條記錄代表一輛公共汽車到達公共汽車站的事件,其中包括巴士ID,停車標識,到達時間(以秒爲單位的軍事時間)和出發時間(以秒爲單位的軍事時間)。如果我可以將每個事件加入到後續事件中,那麼我可以通過從停靠點2到停靠點2的到達時間減去離開時間來計算每輛車在停靠點之間行駛的時間。SQL:基於時間戳加入連續事件

但是,如何執行此連接?如何在給定的出發時間後輕鬆找到最快到達時間? 編輯我使用SQL服務器2012年

樣本數據

Sample Data

預期結果

Expected Result After Join

+2

發佈一些樣本數據和預期結果。還用正在使用的dbms標記問題。 –

+0

dbms是sql-server-2012 – GenuineSmile29

回答

1

使用lead功能,它在獲取值基於sp的後續行明確的訂購。

select t.*, 
lead(arrival_time) over(partition by busname order by arrival_time) as next_stop_arrival, 
lead(departure_time) over(partition by busname order by arrival_time) as next_stop_departure 
from tablename t 
+0

美麗!第一次使用領導功能。我將不得不更多地瞭解它(並且落後)。乾杯! – GenuineSmile29