Skip to main content
 首页 » 编程设计

python之你能对 Django 查询集中的聚合值做额外的数学运算吗

2024年09月03日33jiqing9006

我试图避免重复聚合我已经计算出的值。我已经得到年度总计,但我还想要季度总计

什么会起作用:

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)) 

请您参考如下方法:

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

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)