인프런 커뮤니티 질문&답변

ming님의 프로필 이미지
ming

작성한 질문수

8시간 완성 SQLD(2과목)

HAVING과 WHERE절의 차이

WHERE절과 차이 질문

해결된 질문

작성

·

60

1

WHERE절이 GROUP BY 집계 이전에 실행되기 때문에 집계함수를 사용할 수 없다라고 하셨는데 WHERE절이 그룹화와 집계함수 이전에 실행된다는 말인가요? 아니면 GROUP BY절 이전에 WHERE절이 실행된다는 말인가요??

답변 1

1

땃지님의 프로필 이미지
땃지
지식공유자

ming님, 안녕하세요!

WHERE 절은 GROUP BY나 집계함수가 실행되기 전 실행되는 것이 맞습니다.(논리적 순서입니다.)

GROUP BY하지 않고도 집계함수를 사용할 수 있으니 GROUP BY 절 이전이라고 표현했다면 엄밀한 표현은 아닌 것 같습니다. 정확하지 않은 표현으로 혼란을 드려 죄송합니다. 🙏🙏🙏

 

WHERE 절이 GROUP BY, 집계 이전에 실행되고 또다른 필터링 절인 HAVING 절과 용도가 구분된 이유는 몇 가지가 있습니다.

  1. GROUP BY와 집계에 많은 자원이 필요해서 이전에 필터링 해서 필요한 데이터만 집계하도록 한 것입니다.

  2. 집계하고 나면 전체적으로 테이블 구조가 바뀌고 집계된 열이 새로 만들어 질 수 있기 때문에 HAVING 절을 따로 둬서 이용하게 된 것입니다.

 

답변이 부족했다면 다시 질문해주세요!

의문점을 품어두지 않고 질문해 주셔서 감사합니다.

ming님의 프로필 이미지
ming

작성한 질문수

질문하기