子查询字段的总和django
Sum of Subquery fields django
我有以下子查询:
Subquery(
ContestTaskRelationship.objects.filter(
contest=contest,
solved=OuterRef('id')
).values('cost').all()
)
然后我需要用每个子查询返回的 cost
值的总和来注释我的 QuerySet。怎么做?将子查询包装在 Sum returns 中,仅包含每个子查询的第一个元素。
我找到了不用Subquery
的方法:
cost_sum=Sum(
Case(
When(
contest_task_relationship__contest=contest,
then='contest_task_relationship__cost'
),
default=V(0),
output_field=IntegerField()
)
)
这不是一种优雅的方式,但它确实有效。
我有以下子查询:
Subquery(
ContestTaskRelationship.objects.filter(
contest=contest,
solved=OuterRef('id')
).values('cost').all()
)
然后我需要用每个子查询返回的 cost
值的总和来注释我的 QuerySet。怎么做?将子查询包装在 Sum returns 中,仅包含每个子查询的第一个元素。
我找到了不用Subquery
的方法:
cost_sum=Sum(
Case(
When(
contest_task_relationship__contest=contest,
then='contest_task_relationship__cost'
),
default=V(0),
output_field=IntegerField()
)
)
这不是一种优雅的方式,但它确实有效。