일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html요소
- CSS display 속성
- tcp와 udp의 차이점
- 신입개발자
- multiarray
- Oracle
- cs질문
- 속성
- 기술 면접
- 시맨틱 태그
- 네트워크
- 예외처리
- Java
- 기술면접
- 스프링 부트
- 80 to 443
- 바닐라js
- 리캡차
- html
- 자바
- Failed to read the 'responseText' property from 'XMLHttpRequest'
- database
- css
- 구글 리캡차
- position속성
- 자바의 장점
- Create
- 스프링부트
- css position
- Rename to
- 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 |