Django:获取两个相乘列的聚合值

标签 django django-orm django-aggregation

我需要获得两列的聚合值。所以首先将它们组合在一起,然后得到它们的 sum() .下面的代码自然行不通,只是为了澄清。

它以某种方式可能还是应该使用原始 SQL?

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

最佳答案

使用 extra() 不需要那么多原始 SQL .

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

关于Django:获取两个相乘列的聚合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1875153/

相关文章:

django - 如何在 django 中删除 celerybeat 任务

django - 新手: In Django, 如何更改对象显示名称?

django - TimeField 不受支持的查找 'between' 或不允许加入该字段

mysql - Django:向 Django Filter 添加额外的 BooleanField 或 (SQL tinyint) 后,ORM/SQL 查询速度显着下降

Django 在模型字段上注释 Avg

python - Django对相关一对多对象的聚合查询

Django-jquery : populate combobox based on selection of another combobox

django - 使用related_name在django admin中配置多对多字段

python - django queryset aggregation count 计数错误

python - python manage.py createsuperuser 有什么用?