代码之家  ›  专栏  ›  技术社区  ›  pomo_mondreganto

子查询字段django的总和

  •  0
  • pomo_mondreganto  · 技术社区  · 6 年前

    我有以下子查询:

    Subquery(
             ContestTaskRelationship.objects.filter(
                 contest=contest,
                 solved=OuterRef('id')
             ).values('cost').all()
    )
    

    然后我需要用 cost 每个子查询返回的值。怎么做?将子查询包装在sum中只返回每个子查询的第一个元素。

    1 回复  |  直到 6 年前
        1
  •  0
  •   pomo_mondreganto    6 年前

    我找到了一条没有 Subquery 以下内容:

    cost_sum=Sum(
                Case(
                    When(
                        contest_task_relationship__contest=contest,
                        then='contest_task_relationship__cost'
                    ),
                    default=V(0),
                    output_field=IntegerField()
                )
            )
    

    不是一种优雅的方式,但它是有效的。

    推荐文章