Maison >développement back-end >Tutoriel Python >Comment effectuer des requêtes groupées dans Django ?
Lors de l'interrogation d'un modèle Django, vous pouvez rencontrer un scénario dans lequel vous devez effectuer un groupe par opération . Tenter d'utiliser .group_by() comme vous le feriez dans SQL entraîne une erreur.
Au lieu d'utiliser .group_by(), Django fournit des méthodes d'agrégation qui vous permettent d'effectuer des requêtes complexes. impliquant des regroupements. Plus précisément, Count est utile pour compter les occurrences d'un champ particulier.
Pour regrouper les résultats par désignation et compter les occurrences, vous utiliserez le code suivant :
from django.db.models import Count result = (Members.objects .values('designation') .annotate(dcount=Count('designation')) .order_by() )
Cette requête est similaire à l'instruction SQL suivante :
SELECT designation, COUNT(designation) AS dcount FROM members GROUP BY designation
La sortie de la requête Django serait dans le form :
[{'designation': 'Salesman', 'dcount': 2}, {'designation': 'Manager', 'dcount': 2}]
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!