Oracle

그룹함수 -GROUP BY , HAVING ,ROLL UP ,CUBE,GROUPING

임혁진 2023. 12. 12. 12:11

그룹함수 

- AVG 

- SUM

- MIN

- MAX

- COUNT

DISTINCT -중복제거

예시

 

COUNT -(*),(EXPR)

COUNT(*) - NULL값 포함

COUNT(EXPR) - EXPR에서 NULL이 아닌 행의 수 리턴

 

GROUP BY

GROUP BY 는 WHERE 절과 ORDER BY 사이에 나온다

DEPARTMENT_ID 가 같은 수 끼리 SALARY의 평균을 출력

 

하나 이상의 열로 그룹화

 

그룹함수의 잘못된 사용

개별 컬럼과 그룹 함수를 같이 SELECT문으로 쓰는경우

- GROUP BY (개별컬럼)해줘야한다

 

WHERE절에 그룹함수를 제한하는 경우

-HAVING을 사용

HAVING

HAVING 은 -그룹함수를 제한하는 함수이다 (일반 컬럼의 WHERE절)

 

 

ROLLUP ,CUBE , GROUPING

 

ROLLUP 

-GROUP BY 절과 같이 사용 되며 , GROUP BY 절에 의해 그룹지어진 총계에 대한 결과를 상세히 반환

CUBE

-CUBE 는 서브 그룹에 대한 SUM을 추출하는데 사용

ROLLUP 보다 지저분하게 나오고 추출값을 모아놓고 추출값의 총계도 나온다.

 

 

GROUPING

-GROUPING 은 ROLLUP , CUBE에 모두 사용할 수 있다

-> 소계나 총계의 데이터는 (CUBE나 ROLLUP에 의해 산출된 ROW) 는 1 반환 원래 테이블의 ROW는 0을 반환

-> 결과집합 ROW인지 산출된 ROW인지 확인용이다.

 

 

 

그룹함수 실습문제

https://ohj9575.tistory.com/40