-
Notifications
You must be signed in to change notification settings - Fork 0
Report
Andrea Borruso edited this page Aug 12, 2016
·
7 revisions
A seguire una serie di query per creare un report automatico.
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;
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;
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