GROUPING SETS
이 함수는 오라클 이전 버전에서 UNION ALL등을 사용하여 복잡하게 SQL문장을 만드는 부분을 해소 할 수 있도록 한 GROUP BY의 확장이다. 실습을 통해 이해하자.
à 아래는 기존 함수인 GROUP BY를 이용하여 부서별 직업별, 직업별, 관리자별 각각 그룹핑을 한 후 둘을 합친 결과를 얻는 예제이다.
SQL> SELECT deptno, job, NULL, sum(sal)
2 FROM emp
3 GROUP BY deptno, job
4 UNION ALL
5 SELECT NULL, job, mgr, sum(sal)
6 FROM emp
7 GROUP BY job, mgr;
DEPTNO JOB NULL SUM(SAL)
---------- --------- ---------- ----------
10 CLERK 1300
10 MANAGER 2450
10 SALESMAN 1250
10 PRESIDENT
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 4350
CLERK 7698 950
DEPTNO JOB NULL SUM(SAL)
---------- --------- ---------- ----------
CLERK 7782 1300
CLERK 7788 1100
CLERK 7902 800
ANALYST 7566 6000
MANAGER 7839 8275
SALESMAN 7698 5600
PRESIDENT
à 아래는 위의 예문과 같은 결과를 내기 위해 GROUPING SET을 이용한 사례 이다.
SQL> SELECT deptno, job, mgr, sum(sal)
2 FROM emp
3 GROUP BY GROUPING SETS ((deptno, job), (job, mgr));
DEPTNO JOB MGR SUM(SAL)
---------- --------- ---------- ----------
10 CLERK 1300
10 MANAGER 2450
10 SALESMAN 1250
10 PRESIDENT
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 4350
CLERK 7698 950
DEPTNO JOB MGR SUM(SAL)
---------- --------- ---------- ----------
CLERK 7782 1300
CLERK 7788 1100
CLERK 7902 800
ANALYST 7566 6000
MANAGER 7839 8275
SALESMAN 7698 5600
PRESIDENT
2017년 4월 8일 토요일
[구로IT학원,오라클교육,SQL,튜닝강좌] SET VERIFY 사용법
SET VERIFY ON/OFF : SQL명령어나 PL/SQL에서 &를 이용한 치환 변수등을 사용할 때 치환되기 전 후의 자세한 값을 보일 건지의 여부를 결정 한다. 기본값은 ON 이다.
SQL> set verify off
SQL> select &list
2 from &tab
3 where rownum < 3;
list의 값을 입력하십시오: ename
tab의 값을 입력하십시오: emp
ENAME
----------
SMITH
ALLEN
경 과: 00:00:00.01
SQL> set verify on;
SQL> select &list
2 from &tab
3 where rownum < 3;
list의 값을 입력하십시오: ename
구 1: select &list
신 1: select ename
tab의 값을 입력하십시오: emp
구 2: from &tab
신 2: from emp
ENAME
----------
SMITH
ALLEN
경 과: 00:00:00.01
SQL> set verify off
SQL> select &list
2 from &tab
3 where rownum < 3;
list의 값을 입력하십시오: ename
tab의 값을 입력하십시오: emp
ENAME
----------
SMITH
ALLEN
경 과: 00:00:00.01
SQL> set verify on;
SQL> select &list
2 from &tab
3 where rownum < 3;
list의 값을 입력하십시오: ename
구 1: select &list
신 1: select ename
tab의 값을 입력하십시오: emp
구 2: from &tab
신 2: from emp
ENAME
----------
SMITH
ALLEN
경 과: 00:00:00.01
[구로IT학원,오라클교육,SQL,튜닝강좌] SET FEEDBACK 사용법
SET FEED[BACK] ON/OFF/N : 값이 N인 경우 Query가 선택하는 레코드의 개수가 적어도 몇 개 이상이면 선택된 개수를 표시 할 수 있게 만들어 준다. ON의 경우엔 몇 건이 select 되더라도 선택된 개수가 하단에 display 된다.
SQL> set feedback 2;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
2 개의 행이 선택되었습니다.
SQL> set feedback 3;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
SQL> set feedback on;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
2 개의 행이 선택되었습니다.
SQL> set feedback 2;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
2 개의 행이 선택되었습니다.
SQL> set feedback 3;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
SQL> set feedback on;
SQL> select ename from emp where rownum < 3;
ENAME
----------
SMITH
ALLEN
2 개의 행이 선택되었습니다.
피드 구독하기:
글 (Atom)