2010-05-26 41 views
17

tôi về cơ bản muốn làm the same as this question, nhưng nhóm bởi sự kết hợp của hai giá trị, chứ không phải chỉ là một:Django: GROUP BY hai giá trị

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

Có ai biết, và làm thế nào, điều này là có thể trong Django ? Tôi đang sử dụng 1.2.

Trả lời

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

Câu trả lời này thực sự sẽ trả lại truy vấn có hai cuộc gọi đến COUNT, cả player_type và nhóm. Vì Django không hỗ trợ tham số dấu sao cho số, COUNT (*) có thể đạt được bằng cách sử dụng một trường không null. PK là một ứng cử viên tốt cho việc này. do đó sử dụng Count ('pk') sẽ là câu trả lời đúng ... –

+0

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