2010-05-26 16 views
17

avrei fondamentalmente come fare the same as this question, ma il raggruppamento da combinazioni di due valori, piuttosto che uno solo:Django: GROUP BY due valori

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

Qualcuno sa se, e in che modo, questo è possibile in Django ? Sto usando 1.2.

risposta

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

Questa risposta restituirebbe effettivamente una query con due chiamate a COUNT, sia tipo_prodotto che squadra. Poiché Django non supporta il parametro asterisco per il conteggio, COUNT (*) può essere ottenuto utilizzando un campo non nullo. Il PK è un buon candidato per questo. quindi usare Count ('pk') sarebbe la risposta giusta ... –

+0

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