我正在尝试通过添加一列并标记一些行以指示它们是每次旅行的最后一站来改进运输调度表。
每个行程将有许多行显示其停靠点及其沿行程的顺序。如果序列号是该行程的最高值,我想用“1”更新 LastStop 列。
我认为下面的 SQL 是在正确的轨道上,但我得到一个“没有这样的列:s1.stop_sequence”所以我不知道我是否在正确的轨道上,直到这个对我来说不明显的错误得到解决。我是一个 SQL 轻量级的,几乎没有超出新手的水平。Stop_Sequence 绝对是该列的正确名称。
UPDATE stop_times
SET LastStop = '1'
WHERE stop_sequence =(
SELECT max(st.stop_sequence)
FROM stop_times s1
WHERE s1.trip_id = trip_id
)
AND
trip_id = s1.trip_id
AND
stop_ID = s1.stop_id;
示例数据的简化版本如下。
TripID Stop Sequence LastStop
665381 1766 1
665381 3037 2
665381 3038 3 1
667475 1130 1
667475 2504 2 1
644501 2545 1
644501 3068 2
644501 2754 3
644501 3069 4
644501 2755 5 1