首页 > 解决方案 > 你能对 Django 查询集中的聚合值做额外的数学运算吗

问题描述

我试图避免重复汇总我已经计算过的值。我已经得到了年度总数,但我还想要一个季度总数

什么会起作用:

django.db.models import Value

props_obj = PropertiesUsers.objects\
    .aggregate(returns_coc_a=Sum(F('subscribe_amount')
               * (F('deal_coc') / Value(100))),
               returns_coc_q=Sum(F('subscribe_amount')
               * (F('deal_coc') / Value(100))) / Value(4))

我想知道我是否/如何做(重复使用年度金额):

props_obj = PropertiesUsers.objects\
    .aggregate(returns_coc_a=Sum(F('subscribe_amount')
               * (F('deal_coc') / Value(100))),
               returns_coc_q=returns_coc_a / Value(4))

标签: pythondjangomathdjango-queryset

解决方案


为什么不将年度汇总分配给变量并重新使用它?像这样:

django.db.models import F, Sum, Value

annual = Sum(F('subscribe_amount') * (F('deal_coc') / Value(100)))
quaterly = annual / Value(4)

props_obj = PropertiesUsers.objects\
    .aggregate(returns_coc_a=annual,
               returns_coc_q=quaterly)

推荐阅读