当前位置: 首页 > 面试题库 >

Django聚合:两个字段相乘的总和

敖淮晨
2023-03-14
问题内容

我有一个类似这样的模型:

class Task(models.Model):
    progress = models.PositiveIntegerField()
    estimated_days = models.PositiveIntegerField()

现在,我想Sum(progress * estimated_days)在数据库级别进行计算。使用Django聚合,我可以获取每个字段的总和,但是不能获取字段相乘的总和。


问题答案:

对于Django> = 1.8,请遵循@kmmbvnr提供的答案

可以使用Django ORM:

这是你应该做的:

from django.db.models import Sum

total = ( Task.objects
            .filter(your-filter-here)
            .aggregate(
                total=Sum('progress', field="progress*estimated_days")
             )['total']
         )

注意:如果两个字段的类型不同,例如integerfloat,则应将要返回的类型作为的第一个参数传递Sum

这是一个很晚的答案,但我想它会帮助某人寻找相同的东西。



 类似资料:
  • 有人请解释一下。为什么下面的程序产生16个?

  • 我是Elasticsearch的新手,我希望在Elasticsearch 5的字段上执行某些聚合。x索引。我有一个索引,其中包含带有字段(具有嵌套结构)和字段(具有嵌套结构)的文档。这些是动态映射的字段。以下是示例文档 文件2: DOC 3: 我想在langs字段上执行总和聚合,这样对于每个键(X/Y)和每种语言,我都可以获得索引中所有文档的总和。此外,我还想从docLang字段生成每种语言类型的

  • 我试图实现的是将两个聚合字段的总和sum(DiscoverCountOld)显示为VisitsDiscoverdOld,并将sum(DiscoverCount)显示为VisitsDiscover作为新列,而不是这两个字段

  • 问题内容: 我需要计算我的Rails 3应用程序中两个字段的乘积之和(即等效于Excel的sumproduct函数)。Rails中是否有一种方法可以帮助解决此问题,如果没有,那么使用自定义sql的Rails代码是什么? 例如,一家旅馆有许多房间。“房间”具有平方英尺(平方英尺),数量(该大小)和hotel_id的属性。我想计算给定酒店中所有房间的总平方英尺。在SQL中,对于Hotel.id = 8

  • 问题内容: 看这个: 现在,我有了一些值和一个从文件中加载的值的实例化。我希望将两个结构合并到一起,以便同时获取两个结构的内容。应该覆盖设置的任何内容,而 可能没有设置所有的字段 。(为什么?因为潜在的用户可能不知道默认值,所以删除该条目等同于设置默认值-我认为) 我认为我需要对此进行反思: 在这里我不确定: 如果根本需要反思 可能有更简单的方法可以做到这一点 我在这里看到的另一个问题是检查零值可

  • 我有一些架构/模式问题。假设我有一个有两个类的域模型。我使用代码优先和存储库模式。(为了使示例更简单,我只使用字段,而不使用属性) 我还有PersonDto和PetDto类,唯一不同的是,PersonDto中的Pets字段是一个简单的List。我使用Automapper将模型类转换为dto。接下来通过REST Api将Dto发送给客户端。现在,如果在某个视图中,我需要为每个人显示其姓名、姓氏和宠物