如果我有一个汇总,是否可以在查询中获得平均值,而无需在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
Run Code Online (Sandbox Code Playgroud)
有什么方法可以获取查询Avg中的subtotal值?这给了我一个错误,不允许我在Avg聚合(“ subtotal”)上进行计算,但是.values('id')由于.annotate(...math here...)内部的操作不是分布式的跨Model对象,所以无法替换分组。