Schienen - Gruppe bei Tag sowie Stunde
Ich möchte ein array erstellen, der die Anzahl der Elemente erstellt, jede Stunde, jeden Tag.
Bin ich verfolgen, wie Menschen fühlen, also mein Modell heißt TrackMood
Es nur eine Spalte mit dem Namen mood
und die Zeitstempel.
Wenn ich
TrackMood.where(mood: "good").group("hour(created_at)").count
Bekomme ich so etwas wie
{11=>4, 12=>2, 13=>2, 15=>1}
Ich habe 2 Fragen hier
1 Wie füge ich den Tag in diesem, so dass es nicht nur die Elemente hinzu, erstellt gestern gegen 11 Uhr zu den items Hinzugefügt, die heute um 11 Uhr?
2 Wie kann ich sicherstellen, dass es sagt 0
für Stunden, wenn nichts geschaffen wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) Statt zu grouping, sich nur auf die Stunden Teil des Datums müssen Sie die Gruppe Teil des Datums relevant ist, d.h. das Datum ein, bis zu den Stunden, und nicht wie etwas spezifischer als das. E. g.
2) Du bist immer gehen, um einen hash zurück rufen, auch wenn es nicht alle Gruppen. Wenn Sie überprüfen möchten, wie viele Gruppen es gibt, die Sie aufrufen können
.size
oder.count
drauf.date_part
als pro diese Antwort : stackoverflow.com/a/20637136/120518For PostgreSQL können Sie date_part
ALSO-post - Rails & Postgresql: wie Sie die Gruppe Abfragen pro Stunde?