我有一个GTFS提要,我正在尝试使用SQL检测停止类型(在我的情况下为bus
,tram
或multiple
)。为此,我必须获取每个站点上的所有路线,并比较route.route_type
字段,该字段包含有关路线类型(0
-电车,3
-公交车)的信息。
这是我的查询:
SELECT stop.stop_id,route.route_type from stop
INNER JOIN stop_time on stop_time.stop_id = stop.stop_id
INNER JOIN trip on trip.trip_id = stop_time.trip_id
INNER JOIN route on route.route_id = trip.route_id
GROUP BY stop.stop_id,route.route_type
ORDER BY stop.stop_id,route.route_type
此查询返回:
stop_id,route_type
1,0
1,3
2,0
3,3
这意味着stop_id = 1具有:
- 公交路线,
- 电车路线。
stop_id = 2只有电车路线。
stop_id = 3只有公交路线。
我想退货:
stop_id,stop_type
1,multiple
2,tram
3,bus
或者甚至更容易的是仅修改具有公共汽车和电车路线的这些站点。所以会是这样:
stop_id,-1
2,3
如何获得此结果?我不确定,但我认为我应该计算每个stop_id的行数,然后以某种方式修改结果,但我不知道该怎么做。