일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- iBATIS
- sencha touch
- 가우스
- PLSQL
- oracle
- jQuery
- Struts
- phonegap
- Android
- 선택적조인
- GPS
- 전자정부프레임워크
- appspresso
- Google Map
- tomcat
- MySQL
- PHP
- WebLogic
- JDOM
- dock
- Ajax
- swingx
- ibsheet
- jsr 296
- MFC
- rowspan
- JSON
- Eclipse
- Spring
- node.js
Archives
- Today
- Total
Where The Streets Have No Name
GROUPING 함수 본문
이 함수는 기술된 컬럼이 ROLLUP이나 CUBE 연산시 사용되었는지를 확인하게 해주는 함수로서 별다른 기능은 없으며 ROLLUP이나 CUBE 사용시 사용자의 이해를 돕기 위한 함수이다. 예를 여 출력된 값 중 NULL이 포함되어 있다면 이 값이 원래 DB에서 NULL인지 CUBE, ROLLUP을 통해 NULL인 된 것 인지를 판단 할 수 있다. ROLLUP/CUBE를 통해 NULL이 생기면 ‘1’이라고 표시 한다.
SQL> select deptno, job, sum(sal), grouping(deptno), grouping(job)
2 from emp
3 group by cube(deptno, job);
DEPTNO JOB SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
---------- --------- ---------- ---------------- -------------
24025 1 1
CLERK 4150 1 0
ANALYST 6000 1 0
MANAGER 8275 1 0
SALESMAN 5600 1 0
PRESIDENT 1 0
10 5000 0 1
10 CLERK 1300 0 0
10 MANAGER 2450 0 0
10 SALESMAN 1250 0 0
10 PRESIDENT 0 0
DEPTNO JOB SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
---------- --------- ---------- ---------------- -------------
20 10875 0 1
20 CLERK 1900 0 0
20 ANALYST 6000 0 0
20 MANAGER 2975 0 0
30 8150 0 1
30 CLERK 950 0 0
30 MANAGER 2850 0 0
30 SALESMAN 4350 0 0
SQL> SELECT DEPTNO, GROUPING(DEPTNO) chk1,
2 JOB, GROUPING(JOB) chk2,
3 COUNT(*),
4 AVG(SAL) * 12 "년봉"
5 FROM EMP
6 GROUP BY ROLLUP(DEPTNO, JOB);
DEPTNO CHK1 JOB CHK2 COUNT(*) 년봉
---------- ---------- --------- ---------- ---------- ----------
10 0 CLERK 0 1 15600
10 0 MANAGER 0 1 29400
10 0 SALESMAN 0 1 15000
10 0 PRESIDENT 0 1
10 0 1 4 20000
20 0 CLERK 0 2 11400
20 0 ANALYST 0 2 36000
20 0 MANAGER 0 1 35700
20 0 1 5 26100
30 0 CLERK 0 1 11400
30 0 MANAGER 0 1 34200
30 0 SALESMAN 0 3 17400
30 0 1 5 19560
1 1 14 22176.9231
SQL> select deptno, job, sum(sal), grouping(deptno), grouping(job)
2 from emp
3 group by cube(deptno, job);
DEPTNO JOB SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
---------- --------- ---------- ---------------- -------------
24025 1 1
CLERK 4150 1 0
ANALYST 6000 1 0
MANAGER 8275 1 0
SALESMAN 5600 1 0
PRESIDENT 1 0
10 5000 0 1
10 CLERK 1300 0 0
10 MANAGER 2450 0 0
10 SALESMAN 1250 0 0
10 PRESIDENT 0 0
DEPTNO JOB SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
---------- --------- ---------- ---------------- -------------
20 10875 0 1
20 CLERK 1900 0 0
20 ANALYST 6000 0 0
20 MANAGER 2975 0 0
30 8150 0 1
30 CLERK 950 0 0
30 MANAGER 2850 0 0
30 SALESMAN 4350 0 0
SQL> SELECT DEPTNO, GROUPING(DEPTNO) chk1,
2 JOB, GROUPING(JOB) chk2,
3 COUNT(*),
4 AVG(SAL) * 12 "년봉"
5 FROM EMP
6 GROUP BY ROLLUP(DEPTNO, JOB);
DEPTNO CHK1 JOB CHK2 COUNT(*) 년봉
---------- ---------- --------- ---------- ---------- ----------
10 0 CLERK 0 1 15600
10 0 MANAGER 0 1 29400
10 0 SALESMAN 0 1 15000
10 0 PRESIDENT 0 1
10 0 1 4 20000
20 0 CLERK 0 2 11400
20 0 ANALYST 0 2 36000
20 0 MANAGER 0 1 35700
20 0 1 5 26100
30 0 CLERK 0 1 11400
30 0 MANAGER 0 1 34200
30 0 SALESMAN 0 3 17400
30 0 1 5 19560
1 1 14 22176.9231