Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer des requêtes groupées dans Django à l'aide de l'agrégation ?

Comment puis-je effectuer des requêtes groupées dans Django à l'aide de l'agrégation ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-06 02:51:11482parcourir

How Can I Perform Group By Queries in Django Using Aggregation?

Grouper par requêtes dans Django

Sans patcher l'API de jeu de requêtes de Django, vous pouvez réaliser un regroupement par fonctionnalité à l'aide des fonctionnalités d'agrégation de l'ORM.

Agrégation utilisant des valeurs et Count

Pour regrouper les résultats par champ spécifique et compter les occurrences de chaque groupe, utilisez la syntaxe suivante :

from django.db.models import Count
result = (Members.objects
    .values('designation')
    .annotate(dcount=Count('designation'))
    .order_by()
)

Cela renverra un ensemble de requêtes avec les résultats regroupés par le champ de désignation, ainsi que le nombre de chaque désignation. Le résultat sera une liste de dictionnaires, chacun contenant la désignation et le dcount (nombre de désignations).

Inclure plusieurs champs dans les résultats

Pour inclure plusieurs champs dans les résultats, ajoutez-les simplement comme arguments aux valeurs() fonction :

    .values('designation', 'first_name', 'last_name')

Références

  • [Documentation Django : valeurs()](https://docs.djangoproject.com/en/ stable/ref/models/querysets/#values)
  • [Documentation Django : annotate()](https://docs.djangoproject.com/en/stable/ref/models/querysets/#annotate)
  • [Documentation Django : Count](https://docs.djangoproject.com /fr/stable/ref/models/lookups/#count)
  • [Documentation Django : Agrégation](https://docs.djangoproject.com/en/stable/topics/db/aggregation/)
  • [Documentation Django : Interaction avec la commande par défaut ou order_by()](https://docs. djangoproject.com/en/stable/topics/db/aggregation/#interaction-with-default-ordering-or-orderby)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn