Django:获取两个列的汇总值 [英] Django: get aggregated value of two multipied columns

查看:180
本文介绍了Django:获取两个列的汇总值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要得到两列的聚合值。所以先把多个他们在一起,然后得到他们的 sum()。下面的代码自然不起作用,只是为了澄清。



是否有可能或应该使用原始SQL?



pre> SomeModel.objects
.filter(** something)
.aggregate(Sum('one_column'*'another_col'))


解决方案

你不需要那么多的原始SQL,使用 extra()

  obj = SomeModel.objects.filter(** something) .extra(
select = {'total':'SUM(one_column * another_column)'},


I need to get aggregated value of two columns. So first multiple them together and then get theirs sum(). Code below naturally does not work, it is just for clarification.

Is it somehow possible or should I use raw SQL?

SomeModel.objects
    .filter(**something)
    .aggregate(Sum('one_column' * 'another_col'))

解决方案

You don't need that much raw SQL using extra().

obj = SomeModel.objects.filter(**something).extra(
    select = {'total': 'SUM(one_column * another_column)'},
)

这篇关于Django:获取两个列的汇总值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆