gpt4 book ai didi

django - 如何计算 django 中聚合的平均值

转载 作者:行者123 更新时间:2023-12-02 03:38:59 25 4
gpt4 key购买 nike

如果我有一个聚合,我可以获取查询中值的平均值,而不用在 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

有什么方法可以获取查询中小计值的Avg吗?它给了我一个错误,不允许我在聚合上计算 Avg (“subtotal”),但我无法替换 .values( 'id') 分组,因为里面的 .annotate(...math here...) 操作不是 distributiveModel 对象。

最佳答案

from django.db.models import F, Sum, FloatField, Avg
Model.objects.filter(...)\
.values('id')\
.annotate(subtotal=Sum(...math here..., output_field=FloatField()))\
.aggregate(total=Avg(F('subtotal')))

Aggregating annotations 。注意:output_fieldSum的参数,而不是annotate()

关于django - 如何计算 django 中聚合的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38021616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com