2013-09-26 1 views
0

장고 ORM을 사용하여 다음 SQL 쿼리를 실행하고 싶습니다. 다른 쿼리와 연결하기 때문에 원시 SQL을 사용하고 싶지 않습니다.장고 쿼리 : 직원 수로 정렬 된 상태 가져 오기

SELECT count(e.id), o.state 
FROM core_employeemodel e, core_officemodel o 
WHERE e.office_id = o.id 
GROUP BY o.state 
ORDER BY -count(e.id); 

모델 :

class OfficeModel(Model): 
    address1 = CharField('address 1', max_length=50,) 
    address2 = CharField('address 2', max_length=50, blank=True) 
    city = CharField('city', max_length=50, db_index=True) 
    state = CharField('state', max_length=2, choices=STATE_CHOICES, db_index=True) 
    zip_code = CharField('zip code', max_length=50, db_index=True) 
    phone = CharField('phone', max_length=50,) 
    fax = CharField('fax', max_length=50, blank=True) 

class EmployeeModel(Model): 
    first_name = CharField('first name', max_length=50, db_index=True) 
    last_name = CharField('last name', max_length=50, db_index=True) 
    picture = ImageField('picture', upload_to='employee_picture/', blank=True,) 
    fax = CharField('fax', max_length=50, blank=True) 
    email = EmailField('email', unique=True) 

전 주석과 시도했지만 나는 좋은 결과를 얻을하지 않았다. 너희들이 나를 도와 줄 수 있니?

+1

모델을 모른 채로 ... – Ngenator

+0

거기에 모델을 추가했습니다! –

답변

1

는 그것을 해결 :

OfficeModel.objects.values('state').annotate(employee_cnt=Count('employee_office')).order_by('-employee_cnt') 

이 다른 사람을 도움이되기를 바랍니다!