2014-11-19 2 views
-4

GROUP-BY 후에 왜 HAVING 절이 필요한지 논리적으로 알고 싶습니까?GROUP-BY 뒤에 HAVING 절이 오는 이유는 무엇입니까?

SELECT name 
FROM actor 
WHERE id IN (

    SELECT Actorid 
    FROM casting 
    WHERE ord = 1 

GROUP BY actorid 
HAVING COUNT(*) > 29 

) 
ORDER BY name asc 

그것은 나에게 아직 클릭하지 않았 음을 잘못 다음과 같은 이유 :

HAVING COUNT(*) > 29 
GROUP BY actorid 
+0

이유는 무엇입니까 'order' 필요'그 후 by' 왜 난 그냥 order'에 의해'할 수 없습니다. 때문에! –

+0

@juergend - 음, 음, 음, 그 점을 참조하십시오. – Coffee

+2

정의 된 구문은 무엇 때문입니까? – MikeTheLiar

답변

1

이유는 때문에 SQL 것이다 기록서는 HAVING 절을 평가하기 전에.

그것은 주로 SQL 구문 제론이 지적 하듯, 그러나 그것은 직관적 인 의미가있다

:

HAVING이 특히 드문 경우에, 그래서 당신의 그룹의 결과에 적용, SQL은 다음과됩니다 질의의 시간순 순서는 단계입니다.

10 Tips for Sorting SQL - TechRepublic

관련 문제