Skip to content
Andrea Borruso edited this page Aug 12, 2016 · 7 revisions

A seguire una serie di query per creare un report automatico.

Numero di rotte per tipo

Dati richiesti: GTFS

Tabelle utilizzate: routes, route_type  

Discussione: Questa query mette in correlazione per tipo, la tabella delle rotte e quella del tipo di rotte. L'output restituisce il conteggio per tipo.

SQL:

SELECT "t"."route_type_name", "t"."route_type_desc", count(*) AS numeroLinee
FROM routes AS "r" 
JOIN route_type AS "t" 
ON r.route_type = (t.ROWID - 1)
GROUP BY t.route_type_desc;

Sistema di transito in km

Dati richiesti: GTFS

Tabelle utilizzate: routes, route_type  

Discussione: Questa query mette in correlazione per tipo, la tabella delle rotte e quella del tipo di rotte. L'output restituisce il conteggio per tipo.

SQL:

SELECT "t"."route_type_name", "t"."route_type_desc", count(*) AS numeroLinee, 
SUM(GeodesicLength(r.geometry))/1000 AS lunghezzaKm
FROM routes AS "r" 
JOIN route_type AS "t" 
ON r.route_type = (t.ROWID - 1)
GROUP BY t.route_type_desc; 

Numero di fermate per rotta o tipo

Dati richiesti: GTFS

Tabelle utilizzate: routes, stops, stop_times, trips

Discussione:

SQL per rotta:

SELECT route_id, MAX(number) as num_stops
FROM (SELECT t.trip_id, r.route_id, COUNT(*) as number 
FROM stop_times st 
LEFT JOIN trips t ON st.trip_id = t.trip_id 
LEFT JOIN routes r on r.route_id = t.route_id 
GROUP BY t.trip_id, r.route_id)
AS route_stops  
GROUP BY route_id;

SQL per tipo:

SELECT tt.route_type_name,tt.route_type_desc, COUNT(*) AS num_stops
FROM
(SELECT st.stop_id, r.route_type, COUNT(*) as number 
FROM stop_times st 
LEFT JOIN trips t 
ON st.trip_id = t.trip_id 
LEFT JOIN routes r on r.route_id = t.route_id 
GROUP BY st.stop_id, r.route_type) AS route_stops  
JOIN route_type tt
ON route_type = (tt.ROWID - 1)	
GROUP BY tt.route_type_desc
Clone this wiki locally