SELECT 절에 조건을 사용하여 결과를 제한할 때는 WHERE 문을 사용하고, 그룹의 결과를 제한할 때는 HAVING절을 사용한다.
그룹별로 결과를 가져오기 위해서는, SELECT 뒤와, GROUP BY 뒤와, HAVING 뒤의 컬럼 조건이 모두 같은 컬럼을 사용해서 조건을 제한해야 한다.
AVG, SUM, MAX, MIN, *NVL
SQL> SELECT ROUND(AVG(중간성적),2) 중간평균, ROUND(AVG(기말성적),2) AS 기말평균 FROM 등록; 중간평균 기말평균 ---------- ---------- 83.75 84.17 SQL> SELECT ROUND(SUM(중간성적),2) 중간합계, ROUND(AVG(기말성적),2) AS 기말평균 FROM 등록; 중간합계 기말평균 ---------- ---------- 1005 84.17 SQL> SELECT SUM(NVL(COMM,0)) FROM EMP; SUM(NVL(COMM,0)) ---------------- 2200 SQL> SELECT MAX(SAL) 최대급여, MIN(SAL) 최소급여 FROM EMP; 최대급여 최소급여 ---------- ---------- 5000 800 SQL> SELECT MAX(학년), MIN(학년) FROM 학생 WHERE 학과='컴퓨터'; MAX(학년) MIN(학년) ---------- ---------- 4 1 SQL> SELECT AVG(중간성적), AVG(기말성적) FROM 등록 WHERE 학번=400; AVG(중간성적) AVG(기말성적) ------------- ------------- 82.5 86.25 SQL> SELECT 학과, AVG(학번) FROM 학생 GROUP BY 학과; 학과 AVG(학번) --------------- ---------- 컴퓨터 275 경영 400 전자공학 600 SQL> SELECT DEPTNO 부서번호, ROUND(AVG(SAL),2) 월급평균 FROM EMP GROUP BY DEPTNO; 부서번호 월급평균 ---------- ---------- 30 1566.67 20 2175 10 2916.67 SQL> SELECT DEPTNO 부서번호, MAX(SAL) 월급최대, MIN(SAL) 월급최소 FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO ASC; 부서번호 월급최대 월급최소 ---------- ---------- ---------- 10 5000 1300 20 3000 800 30 2850 950