문제. 전체사원수, 부서개수, 전체부서의평균사원수, 최대사원수, 최소사원수, 최소사원수인 부서, 최대사원수인 부서를 구하시오
답안.
# 1) keep
select sum(cnt) 전체사원수, count(*) 부서개수
, round(sum(cnt)/count(*),2) 부서별평균사원수
, max(cnt) , min(cnt)
, max(deptno) keep(dense_rank first order by cnt) 최소사원수인부서
, max(deptno) keep(dense_rank first order by cnt desc) 최대사원수인부서
from (select deptno, count(*) cnt
from emp
group by deptno);
# 2) first_value
select sum(cnt) 전체사원수, count(*) 부서개수
, round(sum(cnt)/count(*),2) 부서별평균사원수
, max(cnt) , min(cnt)
, max(min_cnt) 최소사원수인부서
, max(max_cnt) 최대사원수인부서
from (select deptno, count(*) cnt
,first_value(deptno) over(order by count(*)) min_cnt
,first_value(deptno) over(order by count(*) desc) max_cnt
from emp
group by deptno);
전체사원수 부서개수 부서별평균사원수 MAX(CNT) MIN(CNT) 최소사원수인부서 최대사원수인부서
--------- --------- -------------- -------- --------- --------------- ----------------
14 3 4.67 6 3 10 30
'SQL > SQLP' 카테고리의 다른 글
exists (0) | 2024.11.01 |
---|---|
EMP, DEPT 테이블 생성 스크립트 (0) | 2024.11.01 |