Django SUM 查询?

Posted

技术标签:

【中文标题】Django SUM 查询?【英文标题】:Django SUM Query? 【发布时间】:2011-09-22 19:15:31 【问题描述】:

我有一个类似于以下的查询:

SELECT SUM(ISNULL(table.name)) FROM table

SUM 如何在 Django 中转换为 QuerySet?即xyz 转换为什么操作,例如MyModel.objects.xyz()

【问题讨论】:

如果您有高级用例,您可能需要条件表达式docs.djangoproject.com/en/1.11/ref/models/… 【参考方案1】:

更新:以下内容包含原始查询的 ISNULL 方面:

from django.db.models import Sum

ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))
# returns 'field_name__sum': 1000 for example

您正在寻找 Sum 聚合函数,其工作原理如下:

ModelName.objects.aggregate(Sum('field_name'))

见:https://docs.djangoproject.com/en/dev/ref/models/querysets/#sum

【讨论】:

我认为您可以在查询中使用过滤器来做到这一点。我还没有测试过,但是这样的东西应该可以工作:ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))

以上是关于Django SUM 查询?的主要内容,如果未能解决你的问题,请参考以下文章

django-分组聚合查询

在 Django 查询集中编辑注释结果

075: Django数据库ORM聚合函数详解-Sum

django功能六

django功能六

django-聚合查询