我有一张桌子,上面有关于在城市周围行驶的公共汽车的信息。每条记录代表一个公共汽车到达公共汽车站的事件,公共汽车id,停止id,到达时间(军事时间,以秒为单位)和出发时间(军事时间,以秒为单位)。如果我可以将每个事件加入到后续事件中,那么我可以通过从第2站的到达时间减去第1站的出发时间来计算每辆公交车在站点之间驾驶的时间。
但是我该如何进行此加入?如何在一定的出发时间后轻松找到最快的到达时间? 编辑我正在使用sql-server 2012。
示例数据
预期结果
答案 0 :(得分:1)
使用lead
函数,该函数根据指定的顺序获取后续行的值。
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