Mein Ziel ist es, einen Bericht zu erstellen, der die durchschnittliche Belegung einer Garage (Y-Achse) zu einem bestimmten Wochentag und/oder einer bestimmten Uhrzeit anzeigt. Meine Datenmodell ist wie folgt:Bericht über einen gruppierten Durchschnitt über eine Gruppe von Datensätzen
- Garage
has_many
Autos und Garagehas_many
Termine,through: :cars
- Auto
has_many
Termine - Termin hat Felder wie:
- picked_up_at (Datumzeit)
- returned_at (DatumZeit)
Auch Garage hat ein Feld capacity (integer)
, das ist die maximale Anzahl von Autos, die in die Garage passen.
Wenn ich eine Liste von Terminen in den letzten 6 Monaten habe, und ich möchte ein Liniendiagramm mit der X-Achse jeden Wochentag, in 4-Stunden-Intervallen, und die y -Achse zeigt die durchschnittliche prozentuale Belegung (Anzahl der Autos in der Garage/Kapazität) über den 6-Monats-Zeitraum für den angegebenen Tag/Stunde-Intervall an, wie kann ich diese Daten sammeln, um darüber zu berichten?
z. ein Auto ist In
von der Zeit der Rückkehr eines Termins bis zur Abholung des nächsten Termins und Out
von der Abholung des Termins, bis es returned_at
Zeit ist.
Ich habe eine Menge Probleme, die Verbindung von diesen Datenpunkten zum besten Weg, um sinnvoll zu berichten und präsentieren sie an den Endnutzer.
Ich verwende Rails 4.1 und Ruby 2.0.
Edit: SQL Fiddle - http://sqlfiddle.com/#!9/a72fe/1
Ihre Geige ist für MySQL. Sie sollten dies in Postgres ändern, damit es zu Ihrer Frage passt: http://sqlfiddle.com/#!15/77901/1. Außerdem haben Sie es versäumt, mögliche NULL-Werte in 'returned_at' zu erwähnen (ich habe das Schema auch an Ihre Spaltennamen angepasst.) –
Also haben Sie Ihre Antwort? –
@ErwinBrandstetter - Entschuldigung für die Verzögerung bei der Auswahl einer Antwort, ich war außer Landes, aber ich werde arbeiten, um Ihre Lösung zu implementieren, und sobald ich das tue, werde ich die Antwort akzeptieren. Danke nochmal – jackerman09