shahjapan
shahjapan

Reputation: 14335

Django complex query to fetch data from groupby and having clause

I want to execute group by clause on MyUser table having CNT.Status exactly one the raw query would be like below.

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

I tried various options using Django model API but its adding "id" too in group by clause.

Upvotes: 2

Views: 2473

Answers (1)

dani herrera
dani herrera

Reputation: 51645

It seems you are looking for filtering on annotations:

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

Notice: I supose that status is a 1:N related model.

Upvotes: 5

Related Questions