Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich GROUP BY-Abfragen in Django durch?
Wie erreicht man eine Gruppierung nach Abfrage in Django?
Um in Django eine Gruppierung nach Abfrage für ein Modell durchzuführen, kann man das verwenden Aggregationsfunktionen des ORM. Dies wird durch die Verwendung der Methoden „values()“ und „annotate()“ erreicht.
Betrachten Sie das folgende Beispiel:
from django.db.models import Count result = (Members.objects .values('designation') .annotate(dcount=Count('designation')) .order_by() )
Dieser Code wird in eine SQL-Abfrage ähnlich der folgenden übersetzt:
SELECT designation, COUNT(designation) AS dcount FROM members GROUP BY designation
Das Ergebnis der Abfrage ist eine Liste von Wörterbuchobjekten, die jeweils eine Gruppe darstellen. Zum Beispiel:
[{'designation': 'Salesman', 'dcount': 2}, {'designation': 'Manager', 'dcount': 2}]
Um mehrere Felder in die Ergebnisse einzubeziehen, fügen Sie sie einfach als Argumente zu „values()“ hinzu:
.values('designation', 'first_name', 'last_name')
Referenzen:
Das obige ist der detaillierte Inhalt vonWie führe ich GROUP BY-Abfragen in Django durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!