2014-01-22 49 views
-1

如何爲以下MySQL查詢執行的Django查詢:Django的查詢,GROUPBY,計數()

This is Django model 
class Passengers(models.Model):  
    id = models.CharField(max_length=128)   
    ref = models.CharField(max_length=128) 
    orgId = models.ForeignKey(Organization) 
    number = models.CharField(max_length=128) 

MYSQL 
------ 
SELECT `ref` , count('id') 
FROM `dispatcher_passengers` 
WHERE `orgId_id` =1 
GROUP BY `ref` 

我有ID,參考列的模型。

我想用'ref'得到count(id)。

所以我怎麼能寫在Django查詢集格式上面的查詢。

+0

請出示你的Django模型,否則我們不得不猜想他們叫什麼。 – Alasdair

+2

給文檔一個機會https://docs.djangoproject.com/en/dev/topics/db/aggregation/ – pleasedontbelong

回答

0

怎麼樣這樣:

refs = Passengers.objects.values('ref') 
refs = set(refs) 
ref_count = lambda ref: Passengers.objects.filter(ref = ref).count 
counts = [ (ref, ref_count(ref)) for ref in refs ] 

更新:

from django.db.models import Count 
count = Passengers.objects.values('ref').annotate(Count('id')).order_by()