다중행 함수
SELECT SUM(SAL),
SUM(DISTINCT SAL),
SUM(ALL SAL)
FROM EMP;
SELECT COUNT(SAL),
COUNT(DISTINCT SAL),
COUNT(ALL SAL)
FROM EMP;
SELECT COUNT(COMM)
FROM EMP;
SELECT COUNT(COMM)
FROM EMP
WHERE COMM IS NOT NULL;
SELECT MAX(HIREDATE)
FROM EMP
WHERE DEPTNO = 20;
SELECT AVG(DISTINCT SAL)
FROM EMP
WHERE DEPTNO = 30;
GROUP BY절
SELECT AVG(SAL), DEPTNO
FROM EMP
GROUP BY DEPTNO
ORDER BY DEPTNO;
SELECT AVG(SAL), '10' AS DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION ALL
SELECT AVG(SAL), '20' AS DEPTNO
FROM EMP
WHERE DEPTNO = 20
UNION ALL
SELECT AVG(SAL), '30' AS DEPTNO
FROM EMP
WHERE DEPTNO = 30;
SELECT DEPTNO, JOB, AVG(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
HAVING AVG(SAL) >= 2000
ORDER BY DEPTNO, JOB;
그룹화 관련 함수
SELECT DEPTNO, JOB, COUNT(*), MAX(SAL), SUM(SAL), AVG(SAL)
FROM EMP
GROUP BY ROLLUP (DEPTNO, JOB);
SELECT DEPTNO,
LISTAGG(ENAME, ', ')
WITHIN GROUP ( ORDER BY SAL DESC ) AS ENAMES
FROM EMP
GROUP BY DEPTNO;
SELECT DEPTNO, JOB, MAX(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
ORDER BY DEPTNO, JOB;
SELECT *
FROM (SELECT DEPTNO, JOB, SAL FROM EMP) PIVOT (MAX(SAL) FOR DEPTNO IN ( 10,20,30 ))
ORDER BY JOB;