SQL 정리(2)

민찬홍·2023년 8월 11일

DB

목록 보기
2/4

sql문을 안다룬지 너무 오래되다 보니까 HAVING절과 WHERE절이 헷갈릴때가 있어서 정리한다.

WHERE


  • WHERE절은 쿼리 실행 전에 데이터를 필터링하는 역할을 한다.
  • WHERE절은 데이터베이스 테이블의 레코드들을 조건에 따라 미리 필터링하며, 이후에 GROUP BY 절과 관련 없이 레코드가 처리된다.
  • WHERE절은 테이블의 열에 대한 조건을 검사하는데 주로 사용된다.

HAVING


  • HAVING 절은 GROUP BY절과 함께 사용되며, 그룹화된 결과에 조건을 적용하는 역할을 한다.
  • HAVING 절은 GROUP BY 절을 통해 생성된 그룹의 집계 함수 결과에 조건을 적용하여 필터링한다.
  • HAVING 절은 집계 함수를 사용한 결과에 대한 조건을 검사하는데 주로 사용된다.

간단히 말해서 WHERE절은 테이블의 원본 데이터를 조건에 따라 필터링하고, HAVING절은 그룹화된 결과에 대한 집계 함수 결과를 조건에 따라 필터링한다.

다음과 같은 쿼리를 생각해보자.

SELECT DEPARTMENT, AVG(SALARY) AS AVG_SALARY
FROM EMPLOYEES
WHERE AGE >= 30
GROUP BY DEPARTMENT
HAVING AVG(SALARY) > 50000;

이 쿼리에서 WHERE 절은 나이가 30이상인 레코드를 필터링하고, GROUP BY절을 통해 부서별로 그룹화한다. 그리고 HAVING 절은 각 부서별 평균 급여가 50000보다 큰 경우만 선택한다.

profile
백엔드 개발자를 꿈꿉니다

0개의 댓글