SQL> set lines 100
SQL> set pages 50
SQL> SELECT * FROM EMP;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO) ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
29025
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO) ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
29025
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO,JOB ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
9 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
29025
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
ANALYST 6000
CLERK 4150
MANAGER 8275
PRESIDENT 5000
SALESMAN 5600
29025
18 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL ,GROUPING_ID(DEPTNO,JOB) AS SUB_TOTAL FROM EMP
2 GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- ----------
10 CLERK 1300 0
10 MANAGER 2450 0
10 PRESIDENT 5000 0
10 8750 1
20 ANALYST 6000 0
20 CLERK 1900 0
20 MANAGER 2975 0
20 10875 1
30 CLERK 950 0
30 MANAGER 2850 0
30 SALESMAN 5600 0
30 9400 1
29025 3
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
2 CASE GROUPING_ID(DEPTNO,JOB)
3 WHEN 1 THEN 'DEPT SUBTOTAL'
4 WHEN 2 THEN 'JOB SUBTOTAL'
5 WHEN 3 THEN 'GRAND TOTAL'
6 END AS SUB_TOTAL
7 FROM EMP
8 GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- -------------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750 DEPT SUBTOTAL
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875 DEPT SUBTOTAL
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400 DEPT SUBTOTAL
29025 GRAND TOTAL
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
2 CASE GROUPING_ID(DEPTNO,JOB)
3 WHEN 1 THEN 'DEPT SUBTOTAL'
4 WHEN 2 THEN 'JOB SUBTOTAL'
5 WHEN 3 THEN 'GRAND TOTAL'
6 END AS SUB_TOTAL
7 FROM EMP
8 GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- -------------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750 DEPT SUBTOTAL
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875 DEPT SUBTOTAL
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400 DEPT SUBTOTAL
ANALYST 6000 JOB SUBTOTAL
CLERK 4150 JOB SUBTOTAL
MANAGER 8275 JOB SUBTOTAL
PRESIDENT 5000 JOB SUBTOTAL
SALESMAN 5600 JOB SUBTOTAL
29025 GRAND TOTAL
18 rows selected.
SQL>
Queries:
SELECT * FROM EMP;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO) ORDER BY DEPTNO;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO,JOB ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL ,GROUPING_ID(DEPTNO,JOB) AS SUB_TOTAL FROM EMP
GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
CASE GROUPING_ID(DEPTNO,JOB)
WHEN 1 THEN 'DEPT SUBTOTAL'
WHEN 2 THEN 'JOB SUBTOTAL'
WHEN 3 THEN 'GRAND TOTAL'
END AS SUB_TOTAL
FROM EMP
GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
CASE GROUPING_ID(DEPTNO,JOB)
WHEN 1 THEN 'DEPT SUBTOTAL'
WHEN 2 THEN 'JOB SUBTOTAL'
WHEN 3 THEN 'GRAND TOTAL'
END AS SUB_TOTAL
FROM EMP
GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
SQL> set pages 50
SQL> SELECT * FROM EMP;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO) ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
29025
SQL> SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO) ORDER BY DEPTNO;
DEPTNO SUM_OF_SAL
---------- ----------
10 8750
20 10875
30 9400
29025
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO,JOB ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
9 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
29025
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
ANALYST 6000
CLERK 4150
MANAGER 8275
PRESIDENT 5000
SALESMAN 5600
29025
18 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL ,GROUPING_ID(DEPTNO,JOB) AS SUB_TOTAL FROM EMP
2 GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- ----------
10 CLERK 1300 0
10 MANAGER 2450 0
10 PRESIDENT 5000 0
10 8750 1
20 ANALYST 6000 0
20 CLERK 1900 0
20 MANAGER 2975 0
20 10875 1
30 CLERK 950 0
30 MANAGER 2850 0
30 SALESMAN 5600 0
30 9400 1
29025 3
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
2 CASE GROUPING_ID(DEPTNO,JOB)
3 WHEN 1 THEN 'DEPT SUBTOTAL'
4 WHEN 2 THEN 'JOB SUBTOTAL'
5 WHEN 3 THEN 'GRAND TOTAL'
6 END AS SUB_TOTAL
7 FROM EMP
8 GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- -------------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750 DEPT SUBTOTAL
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875 DEPT SUBTOTAL
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400 DEPT SUBTOTAL
29025 GRAND TOTAL
13 rows selected.
SQL> SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
2 CASE GROUPING_ID(DEPTNO,JOB)
3 WHEN 1 THEN 'DEPT SUBTOTAL'
4 WHEN 2 THEN 'JOB SUBTOTAL'
5 WHEN 3 THEN 'GRAND TOTAL'
6 END AS SUB_TOTAL
7 FROM EMP
8 GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
DEPTNO JOB SUM_OF_SAL SUB_TOTAL
---------- --------- ---------- -------------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750 DEPT SUBTOTAL
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875 DEPT SUBTOTAL
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400 DEPT SUBTOTAL
ANALYST 6000 JOB SUBTOTAL
CLERK 4150 JOB SUBTOTAL
MANAGER 8275 JOB SUBTOTAL
PRESIDENT 5000 JOB SUBTOTAL
SALESMAN 5600 JOB SUBTOTAL
29025 GRAND TOTAL
18 rows selected.
SQL>
Queries:
SELECT * FROM EMP;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO) ORDER BY DEPTNO;
SELECT DEPTNO,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY DEPTNO,JOB ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL FROM EMP GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL ,GROUPING_ID(DEPTNO,JOB) AS SUB_TOTAL FROM EMP
GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
CASE GROUPING_ID(DEPTNO,JOB)
WHEN 1 THEN 'DEPT SUBTOTAL'
WHEN 2 THEN 'JOB SUBTOTAL'
WHEN 3 THEN 'GRAND TOTAL'
END AS SUB_TOTAL
FROM EMP
GROUP BY ROLLUP(DEPTNO,JOB) ORDER BY DEPTNO;
SELECT DEPTNO,JOB,SUM(SAL) AS SUM_OF_SAL,
CASE GROUPING_ID(DEPTNO,JOB)
WHEN 1 THEN 'DEPT SUBTOTAL'
WHEN 2 THEN 'JOB SUBTOTAL'
WHEN 3 THEN 'GRAND TOTAL'
END AS SUB_TOTAL
FROM EMP
GROUP BY CUBE(DEPTNO,JOB) ORDER BY DEPTNO;
No comments:
Post a Comment