-- HAVING : 그룹화된 결과에서 조건을 걸어 행 수를 제한
-- 부서별로 가장 어린사람의 생년월일, 연장자의 생년월일, 부서별 총 사원 수를 조회
-- 그런데 부서별 사원이 1명인 부서의 정보는 조회화고 싶지 않음.
-- WHERE 이후 ORDER BY 이전에 HAVING을 작성
SELECT
dept_cd 부서코드
,MAX(birth_de) 최연소자
,MIN(birth_de) 최연장자
,COUNT(emp_no) 직원수
FROM tb_emp
GROUP BY dept_cd
HAVING COUNT(emp_no)>1 --사원수가 1명보다는 커야되요~
ORDER BY dept_cd
;
-- 사원별로 급여를 제일 많이 받았을 때, 제일 적게 받았을때, 평균적으로 얼마 받았는지 조회
-- 그룹화 이후에 평균 급여가 450만원 이상인 사람만 조회
SELECT
emp_no "사번"
, TO_CHAR(MAX(pay_amt),'L999,999,999') "최고 수령액"
, TO_CHAR(MIN(pay_amt),'L999,999,999') "최저 수령액"
, TO_CHAR(ROUND(AVG(pay_amt),2),'L999,999,999.99' )"평균 수령액"
FROM tb_sal_his
GROUP BY emp_no
HAVING AVG(pay_amt) >= 4500000
ORDER BY emp_no;
-- 사원별로 2019년 평균 수령액이 450만원 이상인 사원의 2019년 연봉 조회
SELECT
emp_no "사번"
, SUM(pay_amt)
FROM tb_sal_his
WHERE pay_de BETWEEN '20190101' AND '20191231'
GROUP BY emp_no
HAVING AVG(pay_amt) >= 4500000
ORDER BY emp_no;
'데이터베이스' 카테고리의 다른 글
데이터베이스_SQL기본(ORDER BY)_실전문제_ 22.06.23(day04) (0) | 2022.06.23 |
---|---|
데이터베이스_SQL기본(ORDER BY)_예제_ 22.06.23(day04) (0) | 2022.06.23 |
데이터베이스_SQL기본(GROUP BY)_예제_ 22.06.23(day04) (0) | 2022.06.23 |
데이터베이스_SQL기본(집계 함수)_예제 22.06.23(day04) (0) | 2022.06.23 |
데이터베이스_SQL기본(그룹바이)_교안 22.06.23(day04) (0) | 2022.06.23 |