2010-05-26 11 views
17

Je essentiellement comme faire the same as this question, mais le regroupement par des combinaisons de deux valeurs, plutôt qu'un seul:Django: GROUP BY deux valeurs

SELECT player_type, team, COUNT(*) FROM players GROUP BY player_type, team; 

Est-ce que quelqu'un sait si, et comment, cela est possible dans Django ? J'utilise 1.2.

Répondre

17
Player.objects.values('player_type', 'team').order_by().annotate(Count('player_type'), Count('team')) 
+12

Cette réponse renvoie une requête avec deux appels à COUNT, à la fois player_type et team. Comme Django ne supporte pas le paramètre astérisque pour le compte, COUNT (*) peut être réalisé en utilisant un champ non nul. Le PK est un bon candidat pour cela. donc en utilisant Count ('pk') serait la bonne réponse ... –

+0

https://docs.djangoproject.com/fr/dev/ref/models/querysets/#values – Wtower