如何在django聚合中使用IN CONDITION

时间:2017-11-06 12:32:57

标签: python django aggregation

如何使用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))
)

1 个答案:

答案 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))
)