2013-02-12 5 views
2

CNU.Status를 가진 MyUser 테이블에 group by 절을 실행하려면 아래에서와 같이 원시 쿼리가 하나씩 있어야합니다.Django 복합 쿼리를 사용하여 groupby에서 데이터를 가져오고 절을 사용합니다.

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

Django 모델 API를 사용하여 다양한 옵션을 시도했지만 group by 절에서도 "id"를 추가했습니다.

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

공지 사항 :

답변

5

당신이 filtering on annotations 찾고있는 것 같다 나는 상태가 1이라고 supose : N 관련 모델.

+1

이 누락 된 것은 아닙니다. .values ​​('user_id')'. 그냥 궁금해서. – Shubham

+0

@Shubham 예,'.values_list ('user_id', flat = True)'가 더 정확합니다. 감사. – danihp