나는 다음과 같습니다 일부 SQL을 실행해야합니다Django : 어떻게 명시 적으로 HAVING 절을 사용하여 쿼리를 작성합니까?
select approve_firm_id,approve_dt,approve_result
from main_approve
group by approve_firm_id
having MAX(approve_dt) and approve_result=0;
그것을 실행 (MySQL의-5.1), 하지만 난 이런 장고 모델에서 시도하는 경우 :
Approve.objects.annotate(max_dt=Max('approve_dt')).
filter(max_dt__gt=0).filter(approve_result=0).query
SELECT `main_approve`.`id`, `main_approve`.`approve_result`,
`main_approve`.`approve_dt`, `main_approve`.`approve_user_id`,
`main_approve`.`approve_firm_id`, `main_approve`.`exported_at`,
MAX(`main_approve`.`approve_dt`) AS `max_dt` FROM `main_approve`
WHERE (`main_approve`.`approve_result` = 0)
GROUP BY `main_approve`.`id`
HAVING MAX(`main_approve`.`approve_dt`) > 0
ORDER BY NULL
내가
AFTER로 WHERE 절 필요합니다 생성 쿼리는 이것이다은 GROUP BY 절입니다.
Mike Atlas, 고마워.하지만 실제로는 이전에 실행했던대로 "GROUP BY 절을 __AFTER__하려면 WHERE 절이 필요합니다." –