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