使用GTFS供稿检测停止类型

我有一个GTFS提要,我正在尝试使用SQL检测停止类型(在我的情况下为bustrammultiple)。为此,我必须获取每个站点上的所有路线,并比较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的行数,然后以某种方式修改结果,但我不知道该怎么做。

q327449428 回答:使用GTFS供稿检测停止类型

您可以为每个COUNT检查DISTINCT route_type的{​​{1}},如果它大于1,则输出stop_id,否则使用multiple(或MAX,这没关系,因为只有一个不同的值,但是我们必须使用聚合函数来避免违反MIN的规则分组,将route_type设置为{ {1}}或stop_type

bus
本文链接:https://www.f2er.com/3159566.html

大家都在问