--평균급여, 최고급여, 최저급여, 사원수
--평균급여는 소수점 제외, 각 부서별로 출력
SELECT DEPTNO, TRUNC(AVG(SAL),0) AS AVG_SAL, MAX(SAL) AS AVG_SAL, MIN(SAL) AS AVG_MIN, COUNT(DEPTNO) AS CNT
FROM EMP
GROUP BY DEPTNO;
--같은 직책(JOB)에 종사하는 사원이 3명 이상인 직책과 인원수
SELECT JOB, COUNT(*)
FROM EMP
GROUP BY JOB
HAVING COUNT(JOB)>=3;
--사원들의 입사 연도(HIRE_YEAR)를 기준으로 부서별로 몇 명이 입사했는지 출력
SELECT
SUBSTR(HIREDATE,1,4) AS HIRE_YEAR, DEPTNO, COUNT(*) AS CNT
FROM EMP
GROUP BY SUBSTR(HIREDATE,1,4), DEPTNO;
--추가 수당(COMM)을 받는 사원 수와 받지 않는 사원 수
SELECT
NVL2(COMM,'O','X') AS EXIST_COMM, COUNT(*) AS CNT
FROM EMP
GROUP BY NVL2(COMM, 'O', 'X');
-- 각 부서의 입사 연도 별 사원 수, 최고 급여, 급여 합, 평균 급여를 출력하고 각 부서별 소계와 총계를 출력
SELECT
DEPTNO, SUBSTR(HIREDATE,1,4) AS HIRE_YEAR, COUNT(*) AS CNT,
MAX(SAL) MAX_SAL, SUM(SAL) AS SUM_SAL, AVG(SAL) AS AVG_SAL
FROM EMP
GROUP BY ROLLUP(DEPTNO, SUBSTR(HIREDATE,1,4));