2016-05-13 11 views
2

Ich habe ein Modell Konto, das die Bilanz nach Aktivitäten wächst. Gibt es eine Möglichkeit zu gruppieren und das endgültige Gleichgewicht für diese Woche zu erreichen? Ein Beispiel hier:Wie gruppiere ich meinen Kontostand um Wochen?

Konto

created_at: 31 April 2016, balance: 8000 # Saturday 
created_at: 1 May 2016, balance: 7500  # Sunday 
created_at: 1 May 2016, balance: 7000  # Sunday 
created_at: 7 May 2016, balance: 5000  # Saturday 
created_at: 7 May 2016, balance: 4000  # " 
created_at: 8 May 2016, balance: 3500  # Sunday 
created_at: 12 May 2016, balance: 7000 # Thursday 

und lässt den Endpunkt der Woche sagen wird jeden Montag sein. Mein erwartetes Ergebnis wird sein:

{ 
    2 May 2016 => 7000, # Monday 
    9 May 2016 => 3500, # Monday 
    13 May 2016 => 7000 # Today 
} 

Ich mag das Gleichgewicht auf jedem Montag, aber mit dem Zusatz des jüngsten Gleichgewichts, auch wenn sie nicht an einem Montag ist.

+0

'created_at' scheint ein' Date' zu ​​sein, Ist das korrekt? (Standard wäre eine 'Zeit') – Stefan

+1

Ich verstehe nicht die Schlüssel in Ihrem Ergebnis-Hash und die Art, wie die Summen berechnet werden. 9. Mai 2016 ist ein Montag und 13. Mai 2016 ist ein Freitag. Ich hätte identische Wochentage erwartet. Außerdem, warum enthält der Betrag für den 9. Mai 2016 den Saldo für den 8. Mai 2016, aber nicht den Saldo für den 7. Mai 2016? – Stefan

+0

@Stefan Vielen Dank für Ihre Antwort. Es ist der Standard created_at, also sollte es datetime sein, ich habe es nur in meinem Beispiel zusammengefasst. Ich versuche, das letzte Guthaben zu bekommen, so dass es 3500 sein sollte. Es kann auch mehr als eine Kontoaktivität pro Tag geben und mein Ziel ist es, das letzte Guthaben dieser Woche zu bekommen, welches das nächste Guthaben bis zum 9. Mai sein wird. – pyfl88

Antwort

1

Gruppe die Ergebnisse von Woche des Jahres und das Jahr:

.group("extract(dow from 'created_at'), extract(week from 'created_at')") 

wählen Sie dann die Summe der Balance für diese:

.select("sum(balance)") 
+0

Danke für Ihre Antwort. Aber ich bekomme diesen Fehler, wenn ich versuche zu gruppieren: 'ERROR: Funktion pg_catalog.date_part (unbekannt, unbekannt) ist nicht eindeutig'. Und ich glaube, ich bekomme in dieser Woche das letzte Guthaben, nicht die Summe der Guthaben. – pyfl88

Verwandte Themen