【发布时间】:2016-06-24 20:29:12
【问题描述】:
如果我有一个聚合,我可以得到查询中值的平均值,而不用在 python 内存中计算它吗?
from django.db.models import F, Sum, FloatField, Avg
Model.objects.filter(...)\
.values('id')\
.annotate(subtotal=Sum(...math here...), output_field=FloatField())\
.annotate(total=Avg(F('subtotal'))) #this line throws a FieldError
有没有办法在查询中获取subtotal 值中的Avg?它给了我一个错误,我不允许在聚合(“subtotal”)上计算 Avg,但我无法替换 .values('id') 分组,因为里面的 .annotate(...math here...) 操作不是 @987654321 @跨越Model对象。
【问题讨论】: