Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich GROUP BY-Abfragen in Django durch?

Wie führe ich GROUP BY-Abfragen in Django durch?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 02:22:09594Durchsuche

How to Perform GROUP BY Queries in Django?

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:

  • Django-Dokumentation: Values(), annotate() und Count
  • Django-Dokumentation: Aggregation, insbesondere der Abschnitt zur Interaktion mit Standardbestellung oder order_by()

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn