COUNT: 행의 갯수 출력. SELECT COUNT(comm)
FROM professor
WHERE deptno = 101;COUNT([*]|[DISTINCT|ALL] )MAX: Null 제외 최댓값 MIN: Null 제외 최솟값SELECT MAX(height), MIN(height)
FROM student
WHERE deptno = 102;인수는 NUM만 사용 가능SUM: Null 제외 모든 행의 합 AVG: Null 제외 모든 행의 평균SELECT AVG(weight), SUM(weight)
FROM student
WHERE deptno = 101;인수는 NUMBER만 사용 가능. STDDEV: Null 제외 모든 행의 표준편차 VARIANCE: Null 제외 모든 행의 분산SELECT STDDEV(sal), VARIANCE(sal)
FROM professor;GROUPING: 해당 칼럼이 그룹에 사용되었는지 여부 표시 1 or 0GROUPING SETS: 한 번의 질의로 여러 개의 그룹화SELECT deptno, position, AVG(sal)
FROM professor
GROUP BY deptno;
SELECT AVG(sal)
FROM professor
GROUP BY deptno;
SELECT deptno, grade, COUNT(*), ROUND(AVG(weight))
FROM student
GROUP BY deptno, grade;
select d.dname, e.job, sum(sal)
from emp e, dept d
where e.deptno = d.deptno
group by rollup(d.dname, e.job);

select d.dname, e.job, sum(sal)
from emp e, dept d
where e.deptno = d.deptno
group by cube(d.dname, e.job);

select d.dname, e.job
from emp e, dept d
where e.deptno = d.deptno;

SELECT deptno, grade, count(*), GROUPING(deptno), GROUPING(grade)
FROM student
GROUP BY ROLLUP(deptno, grade);

GROUP BY
GROUPING SETS(a, b, c)
GROUP BY a UNION ALL
GROUP BY b UNION ALL
GROUP BY c
GROUP BY
GROUPING SETS(a, b, (b, c))
GROUP BY a UNION ALL
GROUP BY b UNION ALL
GROUP BY b, c
GROUP BY
GROUPING SETS(a, ROLLUP(b, c))
GROUP BY a UNION ALL
GROUP BY ROLLUP b, c
GROUP BY
GROUPING SETS(a, CUBE(b, c))
GROUP BY a UNION ALL
GROUP BY CUBE b, c
SELECT deptno, grade, TO_CHAR(birthdate, 'YYYY') birthdate, COUNT(*)
FROM student
GROUP BY GROUPING SETS((deptno, grade),
(deptno, TO_CHAR(birthdate, 'YYYY')));
이렇게 하면 (deptno, grade)로 구성된 grouping과 (deptno, birthdate)로 구성된 grouping을 union all해서 합친 결과.
SELECT deptno, grade, TO_CHAR(birthdate, 'YYYY') birthdate, COUNT(*)
FROM student
GROUP BY deptno, grade
UNION ALL
SELECT deptno, grade, TO_CHAR(birthdate, 'YYYY') birthdate, COUNT(*)
FROM student
GROUP BY deptno, TO_CHAR(birthdate, 'YYYY')
와 같다
SELECT grade, COUNT(*), ROUND(AVG(height)) avg_height,
ROUND(AVG(weight)) avg_weight
FROM student
GROUP BY grade
HAVING COUNT(*) > 4
ORDER By avg_height DESC;
학년별로 그룹핑해서 명수가 4명 이상인 학년만 출력