Ich habe eine Tabelle - BusInfo, die speichert, wie viele Passagiere in den Bus steigen und wie viele Plätze er/sie besetzen kann (1 oder mehr, je nach Taschen, die er/sie hat). Ich habe für it-Postgres - Abfrage Zeitreihen Gruppe nach Intervall
http://sqlfiddle.com/#!15/88226/11
start end bus_name seats start_time ride_time
April, 28 2016 17:00:00 April, 28 2016 18:00:00 CA 2 1461862800 3600
April, 28 2016 17:30:00 April, 28 2016 18:30:00 CA 1 1461864600 3600
April, 28 2016 17:45:00 April, 28 2016 18:45:00 CA 2 1461865500 3600
April, 28 2016 17:00:00 April, 28 2016 19:00:00 CA 1 1461862800 7200
April, 28 2016 17:00:00 April, 28 2016 17:30:00 CA 2 1461862800 1800
Ich möchte eine Geige erstellt eine Abfrage auszuführen, die bei 10 der Sitzbelegung bekommt min wie diese interval.Something ist die erwartete Ausgabe
datetime | seats occupied at the time
17:00 5
17:10 5
17:20 5
17:30 4
17:40 4
17:50 6
18:00 4
ich habe versucht, von der Gruppe, aber bekam keine closer-
select to_char(to_timestamp(floor((extract('epoch' from to_timestamp(start_time))/ 600))*600),'yyyy/MM/dd HH24:MI'),
sum(seats) from businfo
where start_time >= 1461862800 and start_time <= 1461866400
and (start_time+ride_time) >= (1461862800)
group by to_char(to_timestamp(floor((extract('epoch' from
to_timestamp(start_time))/ 600))*600),'yyyy/MM/dd HH24:MI')
order by to_char(to_timestamp(floor((extract('epoch' from
to_timestamp(start_time))/ 600))*600),'yyyy/MM/dd HH24:MI') ASC
Irgendwelche Ideen?
Dank für Ihre Antwort. Die Abfrage gibt die erwarteten Ergebnisse zurück, ist aber sehr langsam, obwohl ich keine wirklich große Datenbank habe. Wie kann ich es optimieren? Kann mit dem Hinzufügen von Indizes beginnen. – Harpreet
Kann ich vorschlagen, dass Sie eine andere Frage stellen, explizit über die Leistung? –