Il mio obiettivo è generare un rapporto che mostri l'occupazione media di un garage (asse y) in un dato giorno della settimana e/o ora del giorno. Il mio modello di dati è la seguente:Segnalazione su una media raggruppata su un gruppo di record
- Garage
has_many
Auto e Garagehas_many
Appuntamenti,through: :cars
- auto
has_many
Appuntamenti - appuntamento ha settori quali:
- picked_up_at (datetime)
- returned_at (datetime)
Inoltre, Garage ha un campo capacity (integer)
, che è il numero massimo di automobili che si adatterà al garage.
Se ho un elenco di appuntamenti negli ultimi 6 mesi e vorrei generare un grafico a linee con l'asse x che mostra ogni giorno della settimana, suddiviso in intervalli di 4 ore, e il -axis che mostra la percentuale media di occupazione (numero di auto nel garage/capacità) nel periodo di 6 mesi per l'intervallo di giorni/ore specificato, come posso raccogliere i dati da riportare?
E.g. un'automobile è In
dal momento del ritorno di un appuntamento fino al prossimo ritiro dell'appuntamento, e Out
dal ritiro dell'appuntamento fino al momento in cui è returned_at
.
Ho molti problemi a rendere la connessione da questi punti dati al modo migliore per generare report significativi e presentarli all'utente finale.
Sto utilizzando Rails 4.1 e Ruby 2.0.
Edit: SQL Fiddle - http://sqlfiddle.com/#!9/a72fe/1
vostro violino è per MySQL. Dovrai cambiarlo in Postgres in modo che corrisponda alla tua domanda: http://sqlfiddle.com/#!15/77901/1. Inoltre, hai trascurato di menzionare possibili valori NULL in 'returned_at' (ho adattato anche lo schema per abbinare i nomi delle tue colonne). –
Quindi hai la tua risposta? –
@ErwinBrandstetter - scusate per il ritardo nella selezione di una risposta, sono stato fuori dal paese, ma lavorerò per implementare la vostra soluzione e, non appena lo farò, accetterò la risposta. Grazie ancora – jackerman09