Можете ли вы сделать дополнительную математику для совокупного значения в наборе запросов Django - PullRequest
2 голосов
/ 29 сентября 2019

Я пытаюсь избежать повторного агрегирования для значения, которое я уже рассчитал. Я уже получаю годовой итог, но я также хочу ежеквартальный итог

Что будет работать:

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

1 Ответ

1 голос
/ 29 сентября 2019

Почему бы вам не присвоить годовую статистическую величину переменной и повторно использовать ее? как это:

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