SQL개발자 (SQLD)

SQL개발자 가이드(pdf) 361p~362p 'GROUPING SETS 3개의 인수' 정오표

유혁스쿨 2023. 5. 27. 22:49
728x90
반응형

[DDL 스크립트문]

drop table emp;
drop table dept;

CREATE TABLE EMP(
empno int PRIMARY KEY,
ename varchar(50),
job varchar(50),
mgr int,
sal int,
deptno int
);

CREATE TABLE DEPT(
deptno int PRIMARY KEY,
dname varchar(50)
);

INSERT INTO EMP VALUES(01, 'SMITH', 'CLERK',7698 ,950 ,30);
INSERT INTO EMP VALUES(02, 'SMITH', 'CLERK',7782 ,1300 ,10);
INSERT INTO EMP VALUES(03, 'SMITH', 'CLERK',7788 ,1100 ,20);
INSERT INTO EMP VALUES(04, 'SMITH', 'CLERK',7902 ,800 ,20);
INSERT INTO EMP VALUES(05, 'ALLEN', 'SALESMAN',7698 ,1600 ,30);
INSERT INTO EMP VALUES(06, 'WARD', 'SALESMAN',7698 ,1250 ,30);
INSERT INTO EMP VALUES(07, 'JONES', 'MANAGER',7839 ,2975 ,20);
INSERT INTO EMP VALUES(08, 'MARTIN', 'SALESMAN',7698 ,1250 ,30);
INSERT INTO EMP VALUES(09, 'BLAKE', 'MANAGER',7839 ,2850 ,30);
INSERT INTO EMP VALUES(10, 'CLARK', 'MANAGER',7839 ,2450 ,10);
INSERT INTO EMP VALUES(11, 'SCOTT', 'ANALYST',7566 ,3000 ,20);
INSERT INTO EMP VALUES(12, 'KING', 'PRESIDENT',NULL ,5000 ,10);
INSERT INTO EMP VALUES(13, 'TURNER', 'SALESMAN',7698 ,1500 ,30);

INSERT INTO dept VALUES (10, 'ACCOUNTIONG');
INSERT INTO dept VALUES (20, 'RESEARCH');
INSERT INTO dept VALUES (30, 'SALES');
INSERT INTO dept VALUES (40, 'OPERATIONS');

 

[DML SELEC쿼리]

SELECT DNAME, JOB, MGR, SUM(SAL) "Total Sal"
FROM EMP, DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
GROUP BY GROUPING SETS
((DNAME, JOB, MGR), (DNAME, JOB), (JOB, MGR));

[출력결과]

 

 

 

하지만 PDF에 실린 결과물은 위의 쿼리에 해당하는 출력 결과물이 아니다.

아래 사진을 보자.

위 사진의 결과는 PDF에 실려있는 결과이며 처음 언급한 DML문에 의해 발생하는 쿼리와는 전혀 다른 쿼리이다.

SELECT DNAME, JOB, MGR, SUM(SAL) "Total Sal"
FROM EMP, DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
GROUP BY GROUPING SETS
((DNAME, JOB, MGR), (DNAME, MGR), (DNAME, JOB))

위 쿼리와 같이 DNAME,MRG 그리고 DNAME,JOB을 묶어 GROUPINGSETS한 결과이다.

참고할것!

728x90
반응형