본문 바로가기
SQL/Oracle

오라클 GROUP BY, HAVING 예제 및 사용방법

by wakestand 2020. 3. 28.
반응형

오라클에서는 GROUP BY를 사용해서

테이블 내의 값을 그룹으로 묶을 수 있는데

 

위 스크린샷의 테이블에서

JOB별로 평균 SAL을 묶어서 조회를 하려고 한다

 

묶을 기준이 되는 컬럼을

GROUP BY 컬럼을 사용해서 묶게 되며

 

GROUP BY JOB으로 묶은 후에는

묶은 값을 기준으로만 가져올 수 있다

따라서 대부분은 묶은 후에

합계나 평균을 구하는 식으로 사용되게 된다

 

다음으로는 HAVING인데

GROUP BY를 사용해서 값을 묶은 뒤에는

묶은 내용에 WHERE을 사용할 수 없기 때문에

WHERE 대신 HAVING을 사용하게 되는데

 

GROUP BY 하단에

HAVING 조건

이런 식으로 사용하게 된다

 

위 예를 보면 묶은 내용 중에서

AVG(컬럼)이 > 2500인 내용만

가져온다는 내용이다

 

마지막으로 예제에 사용한 코드는 아래와 같다

 

SELECT AVG(SAL), JOB 
  FROM EMP
GROUP BY JOB -- JOB 기준으로 묶기
HAVING AVG(SAL) > 2500 -- AVG(SAL) > 2500 이상인 값만 가져오기
ORDER BY AVG(SAL) DESC -- AVG(SAL) 기준 내림차순 정렬
반응형

댓글