GROUP BY 절
-> 어떤 칼럼 값을 기준으로 그룹으로 묶어서 그룹의 최대값, 최소값, 평균등을 보고자 하는 경우에 쓰인다
SELECT deptno, ROUND(AVG(sal),2) "부서별 평균 급여", COUNT(ename) FROM emp GROUP BY deptno;--
SELECT deptno, COUNT(*) "사원수" ,ROUND(AVG(sal),1) "평균급여" FROM emp GROUP BY deptno ORDER BY deptno;
SELECT deptno, COUNT(*) "사원수" ,ROUND(AVG(sal),1) "평균급여" FROM emp GROUP BY deptno HAVING AVG(sal) >= 2000 ORDER BY deptno;
에러 발생 경우
SELECT deptno, ename FROM emp GROUPT BY deptno -> 기준 이외에 다른 컬럼을 출력하려고 하면 에러 발생(ename 칼럼은 호출 할 수 없다)
-- ex) 인원수가 4명이상 근무하는 부서를 대상으로 인원수, 평균급여를 출력해보세요
SELECT deptno, COUNT(*), ROUND(AVG(sal)) FROM emp GROUP BY deptno HAVING COUNT(*) >= 4;
'데이터베이스 > ORACLE' 카테고리의 다른 글
계층구조 커리(Hierachycal Query) (0) | 2016.02.17 |
---|---|
숫자 함수, 문자 함수 (0) | 2016.02.17 |
오라클의 데이터 형 (0) | 2016.02.17 |
sql문 연습 (0) | 2016.02.17 |