where과 having의 차이?

1c2·2024년 4월 8일
0

DB

목록 보기
5/7

사용법

  • where
select * from 테이블 where 조건절
  • having
select * from 테이블명 group by 필드명 having 조건절

차이점

  • WHERE 절은 그룹핑되기 전, 즉 개별 레코드에 대해 조건을 적용할 때 사용된다. 이는 데이터를 그룹화하기 전에 특정 레코드를 포함시키거나 제외시키는 데 사용된다.
  • HAVING 절은 GROUP BY로 생성된 그룹에 대한 조건을 적용할 때 사용된다. 즉, 집계 함수(AVG, SUM, COUNT 등)의 결과에 조건을 걸 때 사용된다.

예제

cinemacode로 그룹핑 했을 때 상영시간의 평균이 150분 이상인 그룹의 cinemacode만 조회하시오

그룹화된 결과에 대해서 필터링을 해야하기 때문에 having절을 사용해서 쿼리를 만들어야 한다.

select cinemacode, avg(runningTime) as 평균
from movie
group by cinemacode
having avg(runningtime)>=150;

0개의 댓글