SQL
SQL(HAVING 절)
yellowtrust
2023. 4. 18. 21:41
◆ HAVING문을 사용하여 그룹핑된 데이터에서 원하는 조건으로 추출 가능
- 실행순서: from -> where -> group by -> having -> select
※ 문법적으로는 group by와 having의 순서를 바꿔도 에러 없이 수행 되지만 논리적으로 순서 지키는 것 권고
◆ PRACTICE
1) EMP테이블에서 직업 별로 최고 급여액, 최저 급여액, 총 급여액, 평균 급여액을 구하고, 최종적으로 총급여액이 6000 이상인 데이터만 출력하는 질의 작성
SELECT JOB
, MAX(SAL) AS SAL_MAX
, MIN(SAL) AS SAL_MIN
, SUM(SAL) AS SAL_TOTAL
, ROUND(AVG(SAL)) AS SAL_AVG
FROM EMP
GROUP BY JOB
HAVING MAX(SAL) >= 6000;
2) EMP테이블에서 부서별로 사원수, 직업수, 총급여, 평균급여를 4명이상인 부서만 출력하시오
SELECT DEPTNO
, COUNT(*) AS DEPT_EMP_CNT
, COUNT(DISTINCT(JOB)) AS JOB_CNT
, SUM(SAL) AS TOT_SAL
, ROUND(AVG(SAL), 2) AS AVG_SAL
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*) >= 4