포스팅 목차
o GROUPING_ID
문법
grouping_id::=
목적
GROUPING_ID함수는 행과 관련되는 GROUPING 비트 벡터(bit vector)에 대응하는 수치를 반환한다.
GROUPING_ID함수는 행과 관련된 GROUPING 비트 벡터에 대응하는 수치를 반환한다. GROUPING_ID는 ROLLUP, CUBE, GROUPING함수와 같은 GROUP BY 확장 기능을 포함한 SELECT문장에서 적용할 수 있다. 많은 GROUP BY 표현을 가지는 쿼리에서, 많은 GROUPING함수를 필요로 하는 특정한 행의 GROUP BY 레벨을 지정하기 위해서는 복장한 SQL이 요구된다. GROUPING_ID는 이런 경우 유용하다.
GROUPING_ID함수는 다수의 GROUPING함수의 결과와 비트 벡터(1과 0의 문자열)를 연결하는 것과 동일하다. GROUPING_ID를 이용하여서 다수의 GROUPING함수를 사용하지 않고서, 표현하기 위한 행의 필터 조건이 간단해진다. 행 필터링은 원하는 행이 GROUPING_ID=n의 단일 조건으로 정의될 수 있어서 더 쉬워진다. 함수는 단일 테이블에서 다수의 집계의 레벨을 저장할 때 유용하다.
예제
다음 예제는 샘플 테이블 sh.sales의 쿼리로부터 그룹핑 ID를 추출하는 방법을 보여준다.
Oracle Program. |
SELECT channel_id, promo_id, sum(amount_sold) s_sales,
GROUPING(channel_id) gc,
GROUPING(promo_id) gp,
GROUPING_ID(channel_id, promo_id) gcp,
GROUPING_ID(promo_id, channel_id) gpc
FROM sales
WHERE promo_id > 496
GROUP BY CUBE(channel_id, promo_id);
Results |
C PROMO_ID S_SALES GC GP GCP GPC
- ---------- ---------- ---------- ---------- ---------- ----------
C 497 26094.35 0 0 0 0
C 498 22272.4 0 0 0 0
C 499 19616.8 0 0 0 0
C 9999 87781668 0 0 0 0
C 87849651.6 0 1 1 2
I 497 50325.8 0 0 0 0
I 498 52215.4 0 0 0 0
I 499 58445.85 0 0 0 0
I 9999 169497409 0 0 0 0
I 169658396 0 1 1 2
P 497 31141.75 0 0 0 0
P 498 46942.8 0 0 0 0
P 499 24156 0 0 0 0
P 9999 70890248 0 0 0 0
P 70992488.6 0 1 1 2
S 497 110629.75 0 0 0 0
S 498 82937.25 0 0 0 0
S 499 80999.15 0 0 0 0
S 9999 267205791 0 0 0 0
S 267480357 0 1 1 2
T 497 8319.6 0 0 0 0
T 498 5347.65 0 0 0 0
T 499 19781 0 0 0 0
T 9999 28095689 0 0 0 0
T 28129137.3 0 1 1 2
497 226511.25 1 0 2 1
498 209715.5 1 0 2 1
499 202998.8 1 0 2 1
9999 623470805 1 0 2 1
624110031 1 1 3 3
--------------------------------------------
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】 INITCAP 함수 (0) | 2018.11.22 |
---|---|
[오라클 함수] HEXTORAW 함수 (0) | 2018.11.22 |
[오라클 함수] GROUPING 함수 (0) | 2018.11.20 |
[오라클 함수] GROUP_ID 함수 (0) | 2018.11.20 |
【오라클(Oracle) SQL 함수】 GREATEST 함수 (0) | 2018.11.20 |
댓글