| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 속성
- Failed to read the 'responseText' property from 'XMLHttpRequest'
- 시맨틱 태그
- 스프링부트
- html요소
- 네트워크
- 기술면접
- position속성
- 자바의 장점
- Create
- 리캡차
- css
- database
- 스프링 부트
- Oracle
- multiarray
- cs질문
- 바닐라js
- html
- CSS display 속성
- Rename to
- 예외처리
- tcp와 udp의 차이점
- Java
- css position
- 신입개발자
- 자바
- 80 to 443
- 기술 면접
- 구글 리캡차
- Today
- Total
Building value
Oracle SQL 기본 문법[GROUP BY.GROUPING] 본문
GROUPING 함수는 CUBE나 ROLLUP에서만 사용할 수 있습니다.
CUBE 연산자와 ROLLUP 연산자는 데이터를 다차원으로 집계하는 데 사용되며,
GROUPING 함수는 집계 결과에서 NULL 값을 가진 데이터를 식별하는 데 사용됩니다.
따라서 GROUPING 함수는 CUBE나 ROLLUP을 사용한 집계 결과를 보완하는 데 사용됩니다.
SELECT DECODE(GROUPING(JOB),1,'ALL',JOB) JOB,
DECODE(GROUPING(DEPTNO),1,'ALL',DEPTNO) DEPTNO,
COUNT(*) COUNT_SAL,
AVG(SAL) AVG_SAL
FROM EMP
GROUP BY CUBE(JOB, DEPTNO);
위 쿼리에서 GROUPING 함수는 DECODE 함수와 함께 사용되었는데,
CUBE 연산자로 GROUP BY 절을 작성한 결과 집계된 모든 결과를 반환하기 때문에 GROUPING 함수를 사용하여
어떤 그룹에 대한 결과인지 구분합니다.
위 코드에서는 JOB과 DEPTNO에 대해 CUBE 연산자를 사용하여 총 9개의 그룹이 생성되며,
이를 GROUPING 함수와 DECODE 함수를 사용하여 구분합니다.

다음은 ROLLUP 연산자를 사용하는 예시 쿼리입니다.
SELECT DECODE(GROUPING(JOB),1,'ALL',JOB) JOB,
DECODE(GROUPING(DEPTNO),1,'ALL',DEPTNO) DEPTNO,
COUNT(*) COUNT_SAL,
AVG(SAL) AVG_SAL
FROM EMP
GROUP BY ROLLUP(JOB, DEPTNO);
위 쿼리에서도 CUBE 예시 코드와 동일하게 GROUPING 함수와 DECODE 함수를 사용하여
그룹에 대한 결과를 구분합니다.
ROLLUP 연산자를 사용하여 GROUP BY 절을 작성한 결과 집계된 모든 결과를 반환합니다.
위 쿼리에서는 JOB과 DEPTNO에 대해 ROLLUP 연산자를 사용하여 총 5개의 그룹이 생성되며,
이를 GROUPING 함수와 DECODE 함수를 사용하여 구분합니다.

이처럼 CUBE와 ROLLUP 연산자를 사용하여 GROUP BY 절을 작성할 때 GROUPING 함수와 함께 사용하면,
결과를 보다 직관적이고 이해하기 쉽게 출력할 수 있습니다.
이처럼 CUBE와 ROLLUP 연산자를 사용하여 GROUP BY 절을 작성할 때 GROUPING 함수와 함께 사용하면,
결과를 보다 직관적이고 이해하기 쉽게 출력할 수 있습니다.
'RDBMS > Oracle DB' 카테고리의 다른 글
| Oracle SQL 기본 문법[NULL 함수] (0) | 2023.03.14 |
|---|---|
| Oracle SQL 기본 문법[문자열 함수] (0) | 2023.03.14 |
| Oracle SQL 기본 문법[JOIN] (0) | 2023.03.13 |
| Oracle SQL 기본 문법[GROUP BY.중첩함수,ROLLUP,CUBE,HAVING] (0) | 2023.03.13 |
| Oracle SQL 기본 문법[GROUP BY] (0) | 2023.03.13 |