2012-10-19 122 views
3

我有一個大約15個對象的數據庫Result.objects.all()。結果有一個稱爲分數的字段,範圍從1到5。所以,如果我的瓶坯q = Result.objecets.get(id=1)q.score是2. 什麼是找到所有15個對象的所有分數的平均值的方法?數據庫平均分(Django)

回答

7

你可以使用django aggregation函數來做到這一點;

# Average price across all objects. 
>>> from django.db.models import Avg 
>>> Result.objects.all().aggregate(Avg('score')) 
{'score__avg': 34.35} 
+0

是的,這樣做。 – ono

+0

+1。最好的部分是,這是在數據庫中完成的,而不是在應用程序代碼中完成的,因此它具有更大的可擴展性。 :-) –

+0

讓我們來敲一下:有沒有辦法忽略所有2分,只有平均1,3,4和5的分數?我可能不得不發佈一個新問題。 – ono