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
Libérer: 2024-12-06 02:51:11
original
514 Les gens l'ont consulté

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()
)
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal