列を追加し、いくつかの行にフラグを付けて、各旅行の最後の停車地であることを示すことにより、トランジットスケジューリングテーブルを改善しようとしています。
各旅行には、旅行に沿った停車地とその順序を示す多くの行があります。シーケンス番号がそのトリップで最大の場合、LastStop列を「1」で更新したいと思います。
次の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