Django复杂查询从groupby和having子句获取数据

时间:2013-02-12 07:55:52

标签: django group-by django-queryset annotate

我想在具有CNT.Status的MyUser表上执行group by子句,原始查询就像下面一样。

SELECT user_id from user_table GROUP BY user_id HAVING COUNT(status)=1

我尝试使用Django模型API的各种选项,但它也在group by子句中添加了“id”。

1 个答案:

答案 0 :(得分:5)

您似乎在寻找filtering on annotations

qs = ( MyUser
      .objects
      .annotate(num_status=Count('status'))
      .filter(num_status__gt=1)
     )

注意:我认为该状态是1:N相关模型。