2016. 10. 19(Wed)
L07 group by
GROUP BY
SELET 컬럼명, 그룹함수
FROM 테이블명
WHERE 조건
GROUP BY 칼럼명
그룹 함수는 단 한 개의 결과만 출력 가능
이때 GROUP BY를 사용하면 기준이 되는 칼럼의 여러가지 그룹 함수 결과를 확인할 수 있다.
SELECT DEPTNO, SUM(SAL), AVG(SAL) FROM EMP GROUP BY DEPTNO;
부서 별 최대 급여와 최소 급여를 구하세요.
답) select deptno,max(sal), min(sal) from emp group by deptno;
부서 별 사원 수와 커미션을 받는 사원 수를 구하세요.
답) select deptno, count(ename),count(comm) from emp group by deptno;
HAVING 절을 이용해서 평균 급여가 2000이상인 부서를 부서 번호와 평균 급여를 출력하세요.
HAVING은 GROUP BY의 조건으로 온 칼럼의 그룹 함수 결과를 조건으로 검색할 수 있다. //그룹 함수는 where 절을 쓸 수 없다.
답) select deptno, avg(sal) from emp group by deptno having avg(sal) >=2000;
부서 별 급여의 최대 값과 최소 값을 구하되 최대 값이 2900 이상인 부서만 출력하세요.
답) select deptno, max(sal), min(sal) from emp group by deptno having max(sal)>=2900;
실제 급여의 최대 값이 2900 이상인 부서의 최대값과 최소값을 구하되 실제 급여(SAL*10+COMM)의 최대 값이 2900 이상인 부서만 출력하세요.
답) select deptno, max(sal*10+comm), min(sal*10+comm) from emp group by deptno having max(sal*10+comm)>=2900;
'IT story > JSP' 카테고리의 다른 글
L09 Sub Query (0) | 2016.10.22 |
---|---|
L08 join (0) | 2016.10.22 |
D+34~36 Oracle(SQL SELECT문: Function, Group Function) (0) | 2016.10.01 |
D+31~33 Oracle (서버 설치하기, SQL SELECT문) (0) | 2016.09.28 |
D+29 JDBC(Java DATABASE Connection, DELETE) (0) | 2016.09.26 |