Ist es möglich, die kumulative (laufende) Summe mit djangos orm zu berechnen? Betrachten Sie das folgende Modell:Kumulative (laufende) Summe mit django orm und postgresql
class AModel(models.Model):
a_number = models.IntegerField()
mit einem Satz von Daten, bei denen a_number = 1
. So dass ich eine Nummer (> 1) von AModel
Instanzen in der Datenbank alle mit a_number=1
haben. Ich möchte in der Lage sein, die folgenden zurück:
AModel.objects.annotate(cumsum=??).values('id', 'cumsum').order_by('id')
>>> ({id: 1, cumsum: 1}, {id: 2, cumsum: 2}, ... {id: N, cumsum: N})
Im Idealfall würde ich gerne in der Lage sein, die kumulative Summe zu begrenzen/filtern. Also im obigen Fall möchte ich das Ergebnis auf cumsum <= 2
begrenzen Ich glaube, dass in Postgresql kann man eine kumulative Summe mit Fensterfunktionen erreichen. Wie wird dies in das ORM übersetzt?
Ich verstehe es nicht. Was ist Cumsum? Und es gibt nur einen Datensatz mit ID = 1 –
Cumsum == kumulative Summe, offensichtlich ist dies für mehr als einen Datensatz - bearbeitet, um klarer zu machen, so dass die Größe des Datensatzes größer als eins ist. – wrdeman
Ich glaube nicht, dass Sie es mit dem ORM tun können ... verwenden Sie stattdessen Python –