【发布时间】:2019-11-05 12:46:56
【问题描述】:
我有一个 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,stop_type
1,-1
2,0
3,3
如何达到这个结果?我不确定,但我认为我应该计算每个 stop_id 的行数,然后以某种方式修改结果,但我不知道如何制作。
【问题讨论】:
标签: sql postgresql gtfs