如何使用IN条件(例如:SELECT SUM(a)FROM b WHERE IN(1,2,3)) 通过使用Django聚合。
示例:
result = qs.aggregate(
amount = SUM(Case(WHEN('a IN(1, 2, 3)', then=Value(a)), default=0))
)
答案 0 :(得分:0)
与执行其他任何in
queries的方式相同:
from django.db.models import Case, Sum, When, Value
result = qs.aggregate(
amount=Sum(Case(When(a__in=[1, 2, 3], then=Value(a)), default=0))
)