1) 정의
2) 표현식
1) 정의
2) 예시
-- 부서별 급여 합계, 평균, 인원 수 조회 후 부서코드 순 오름차순 정렬
SELECT
DEPT_CODE
, SUM(SALARY)
, ROUND(AVG(SALARY))
, COUNT(*)
FROM EMPLOYEE
GROUP BY DEPY_CODE
ORDER BY 1 DESC NULLS FIRST;
SELECT
DEPT_CODE
, JOB_CODE
, SUM(SALARY)
, COUNT(*)
FROM EMPLOYEE
GROUP BY DEPT_CODE, JOB_CODE
ORDER BY 1;
SELECT
DECODE(SUBSTR(EMP_NO,8,1), '1', '남', '여') 성별
, ROUND(AVG(SALARY))
, SUM(SALARY)
, COUNT(*)
FROM EMPLOYEE
GROUP BY SUBSTR(EMP_NO,8,1), '1', '남', '여')
ORDER COUNT(*) DESC
SELECT
DEPT_CODE
, JOB_CODE
, SUM(SALARY)
FROM EMPLOYEE
GROUP BY ROLLUP(DEPT_CODE, JOB_CODE)
ORDER BY 1;
SELECT
DEPT_CODE
, JOB_CODE
, SUM(SALARY)
FROM EMPLOYEE
GROUP BY CUBE(DEPT_CODE, JOB_CODE)
ORDER BY 1;
SELECT
NVL(DEPT_CODE, '부서없음')
, JOB_CODE
, SUM(SALARY)
, CASE
WHEN GROUPING(NVL(DEPT_CODE, '부서없음')) = 0 AND GROUPING(JOB_CODE) = 1 THEN '부서별합계'
WHEN GROUPING(NVL(DEPT_CODE, '부서없음')) = 1 AND GROUPING(JOB_CODE) = 0 THEN '직급별합계'
WHEN GROUPING(NVL(DEPT_CODE, '부서없음')) = 0 AND GROUPING(JOB_CODE) = 0 THEN '그룹별합계'
ELSE '총합계'
END 구분
FROM EMPLOYEE
GROUP BY CUBE(NVL(DEPT_CODE, '부서없음'), JOB_CODE)
ORDER BY 4;
UNION
SELECT
EMP_ID
, EMP_NAME
, DEPT_CODE
, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
UNION
SELECT
EMP_ID
, EMP_NAME
, DEPT_CODE
, SALARY
FROM EMPLOYEE
WHERE SALARY > 3000000
ORDER BY 1;
UNION ALL
INTERSECT
MINUS
SELECT
DEPT_CODE
, JOB_CODE
, MANAGER_ID
, FLOOR(AVG(SALARY))
FROM EMPLOYEE
GROUP BY GROUPING SETS((DEPT_CODE, JOB_CODE, MANAGER_ID)
,(DEPT_CODE, MANAGER_ID)
,(JOB_CODE, MANAGER_ID)
);