Ich möchte eine GROUP BY in Django machen. Ich habe Antworten auf Stack Overflow gesehen, die empfehlen:
%Vor% Das funktioniert, aber das Problem ist, dass Sie ValuesQuerySet
anstelle von QuerySet
erhalten, also gibt mir das Abfrage-Set keine vollständigen Objekte, sondern nur bestimmte Felder. Ich möchte komplette Objekte erhalten.
Natürlich müssen wir, da wir gruppieren, auswählen, welches Objekt aus jeder Gruppe genommen werden soll; Ich möchte einen Weg, um das Objekt zu spezifizieren (z. B. nehmen Sie das eine mit dem größten Wert in einem bestimmten Feld, etc.)
Weiß jemand, wie ich das machen kann?
Wenn Sie zwei Abfragen durchführen möchten, können Sie Folgendes tun:
%Vor% Wenn Sie die obersten fünf Objekte nach dcount
möchten, können Sie Folgendes tun:
Es klingt so, als ob Sie nicht unbedingt GROUP BY brauchen, sondern nur Ihre Auswahl auf ein Element pro Feld begrenzen möchten (zB den MAX-Wert eines bestimmten Feldes).
Können Sie versuchen, bestimmte Objekte nach Feld zu sortieren, z. B.
In Postgres
Member.objects.order_by('designation').distinct('designation')
In jeder anderen Datenbank
Member.objects.distinct('designation')