【问题标题】:django cannot compute sum on nested SUMdjango 无法计算嵌套 SUM 的总和
【发布时间】:2021-09-10 18:15:23
【问题描述】:

我在price*inventory1 处运行此查询,它可以工作,但是当我尝试执行price*(inventory1+inventory2) 时,django 会抛出错误。

这行得通

        results = (
            Card.objects.values("rarity")
            .annotate(price=Sum(F("price") * F("inventory1")))
            .order_by()
        )

这不是 :(

       results = (
            Card.objects.values("rarity")
            .annotate(
                price=Sum(
                    F("price")
                    * Sum(
                        F("inventory1")
                        + F("inventory2")
                    )
                )
            )
            .order_by()
        )

我觉得我做错了什么。那么,我该如何在 django ORM 中做到这一点。

【问题讨论】:

    标签: django django-orm


    【解决方案1】:

    没有理由使用内部总和,您可以使用:

    Card.objects.values('rarity').annotate(
        price=Sum(
            F('price') * (F('inventory1') + F('inventory2'))
        )
    ).order_by()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多