티스토리 뷰

It

오라클 그룹함수

rkaclfakt 2023. 2. 26. 22:30

7. 그룹함수

교수 테이블에서 학과별로 교수 수와 보직수당을 받는 교수 수를 출력하여라.

> SELECT deptno, COUNT(*), COUNT(comm) FROM professor GROUP BY deptno;

학과별로 소속 교수들의 평균급여, 최소급여, 최대 급여를 출력.

> SELECT deptno, AVG(sal), MIN(sal), MAX(sal) FROM professor GROUP BY deptno;



학과별 소속 교수들의 평균 급여, 최소 급여, 최대 급여를 구하여라.

> SELECT deptno, profno, sal FROM professor ORDER BY deptno;



ROLLUP, CUBE 연산자

: 다양한 형태의 그룹 조합을 생성하기 위한 연산자.

SELECT deptno, SUM(sal) FROM professor GROUP BY ROLLUP(deptno);

SELECT deptno, position, COUNT(*) FROM professor GROUP BY ROLLUP(deptno, position);

SELECT deptno, position, COUNT(*) FROM professor GROUP BY CUBE(deptno, position);

GROUPING함수

ROLLUP이나 CUBE연산자와 함께 사용하는 함수로 인수로 지정된 칼럼이 ROLLUP,이나 CUBE연산자로 생성된 그룹 조합에서 사용되었는지, 여부를 1또는 0으로 반환

SELECT deptno, grade, COUNT(*), GROUPING(deptno) grp_dno, GROUPING(grade) grp_grade FROM student GROUP BY ROLLUP(deptno, grade);



GROUPING SETS함수

GROUP BY절에서 그룹 조건을 여러개 지정할 수 있는 함수

SELECT deptno, grade, TO_CHAR(birthdate, 'yyyy') birthdate, COUNT(*) FROM student GROUP BY GROUPING SETS((deptno, grade),(deptno, TO_CHAR(birthdate, 'yyyy')));

HAVING절

: SELECT 명령문에서 조건 검색을 위해 사용되는 WHERE절의 기능과 비슷하다.

HAVING절은 GROUP BY 절에 의해 생성된 그룹을 대상으로 조건을 적용한다.

(WHERE절과 달리 HAVING절은 그룹함수를 사용할 수 있다)

ex) WHERE COUNT(*)>4 = 에러 발생.

SELECT grade, COUNT(*), ROUND(AVG(height)) avg_height, ROUND(AVG(weight)) avg_weight

FROM student

GROUP BY grade

ORDER BY avg_height DESC;

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;



SQL함수의 중첩 사용

학과별 평균 몸무게중 최대 평균 몸무게만 출력.

SELECT MAX(AVG(weight)) FROM student GROUP BY deptno;

학과별 학생 수가 최대 또는 최소인 학과의 학생수 출력

SELECT MAX(COUNT(studno)) max_cnt, MIN(COUNT(studno)) min_cnt FROM student GROUP BY deptno;

'It' 카테고리의 다른 글

오라클 조건 검색 및 행의 정렬  (0) 2023.02.27
오라클 SQL함수  (0) 2023.02.26
function check(f, s) { // f = update/delete // s = myform  (0) 2023.02.25
javascript 아이디체크 입력값 체크  (0) 2023.02.24
function alert  (0) 2023.02.23
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함