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

Wie führe ich Gruppierungsabfragen in Django durch?

DDD
Freigeben: 2024-12-05 18:07:10
Original
243 Leute haben es durchsucht

How Do I Perform Group By Queries in Django?

Gruppieren nach-Abfragen in Django

Hintergrund

Beim Abfragen eines Django-Modells kann es vorkommen, dass Sie eine Gruppierung nach-Operation durchführen müssen . Der Versuch, .group_by() wie in SQL zu verwenden, führt zu einem Fehler.

Aggregationsfunktionen

Anstelle der Verwendung von .group_by() bietet Django Aggregationsmethoden, mit denen Sie komplexe Abfragen durchführen können Einbeziehung von Gruppierungen. Count eignet sich insbesondere zum Zählen der Vorkommen eines bestimmten Felds.

Beispiel

Um die Ergebnisse nach Bezeichnung zu gruppieren und die Vorkommen zu zählen, würden Sie den folgenden Code verwenden:

from django.db.models import Count

result = (Members.objects
    .values('designation')
    .annotate(dcount=Count('designation'))
    .order_by()
)
Nach dem Login kopieren

Diese Abfrage ähnelt der folgenden SQL-Anweisung:

SELECT designation, COUNT(designation) AS dcount
FROM members GROUP BY designation
Nach dem Login kopieren

Die Ausgabe der Django-Abfrage wäre in Form:

[{'designation': 'Salesman', 'dcount': 2}, 
 {'designation': 'Manager', 'dcount': 2}]
Nach dem Login kopieren

Zusätzliche Hinweise

  • Beziehen Sie order_by() ein, um eine korrekte Sortierung sicherzustellen.
  • Um mehrere Felder in die Ergebnisse einzuschließen, übergeben Sie sie als Argumente an .values().
  • Weitere Informationen finden Sie in der Django-Dokumentation zu value(), annotate() und Count Informationen.

Das obige ist der detaillierte Inhalt vonWie führe ich Gruppierungsabfragen in Django durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage