-
오라클 SQL - 일반함수, 그룹함수웹프로그래밍/데이터베이스 2018. 6. 20. 12:09
--##일반 함수
-- NULL 값을 0으로 반환 NVL
SELECT ENAME, SAL, COMM, JOB FROM EMP ORDER BY JOB;
SELECT ENAME, SAL, COMM, NVL(COMM, 0), JOB FROM EMP ORDER BY JOB;
-- 커미션을 포함한 연봉계산시 NULL 값 반환
--NULL값이 포함된 연산 결과는 NULL
SELECT ENAME, SAL, COMM, SAL*12, SAL*12+COMM FROM EMP ORDER BY JOB;
-- NULL값을 0으로 변환 후 커미션을 포함한 연봉계산
SELECT ENAME , SAL, COMM, SAL*12+NVL(COMM, 0) FROM EMP ORDER BY JOB;
--SWICH CASE문과 비슷한 DECODE 함수
--DEPTNO 칼럼 값에 따라서 부서명 할당
SELECT DEPTNO, DECODE(DEPTNO, 10, 'ACCOUNTING', 20,
'RESEARCH', 30, 'SALES', 40, 'OPERATIONS') AS DNAME FROM EMP;
--조건에 따라 처리하는 CASE 함수
SELECT ENAME, DEPTNO, CASE WHEN DEPTNO=10 THEN 'ACCOUNTING'
WHEN DEPTNO=20 THEN 'RESEARCH' WHEN DEPTNO=30 THEN 'SALES' END DNAME FROM EMP;
--##GROUP BY 그룹 함수
--합계
SELECT SUM(SAL) FROM EMP;
--평균
SELECT AVG(SAL) FROM EMP;
--최대, 최소
SELECT MIN(SAL), MAX(SAL) FROM EMP;
--오류발생, 그룹함수가 적용되지 않은 칼럼은 로우 갯수가 그대로 나온다.
SELECT ENAME, MIN(SAL) FROM EMP;
--COUNT
SELECT COUNT(COMM) FROM EMP;
SELECT COUNT(*), COUNT(COMM) FROM EMP;
--GROUP BY
--DEPTNO 칼럼 값을 기준으로 그룹을 나눈 후 그룹 연산
SELECT DEPTNO FROM EMP GROUP BY DEPTNO;
SELECT DEPTNO, SUM(SAL), AVG(SAL) FROM EMP GROUP BY DEPTNO;
SELECT DEPTNO, MIN(SAL), MAX(SAL) FROM EMP GROUP BY DEPTNO;
--HAVING
--그룹 결과 제한할때 사용
SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL) >= 2000;
SELECT DEPTNO, MAX(SAL), MIN(SAL) FROM EMP GROUP BY DEPTNO HAVING MAX(SAL) >2900;
'웹프로그래밍 > 데이터베이스' 카테고리의 다른 글
오라클 SQL - DML (0) 2018.06.20 오라클 SQL - DDL(테이블 생성, 변경, 삭제) (0) 2018.06.20 오라클 SQL - 숫자함수, 날짜함수, 변환함수 (0) 2018.06.20 오라클 - SQL 문자함수 (0) 2018.06.17 오라클 SELECT 문 - 데이터 추출 (0) 2018.06.17