Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ROLLUP
CUBE
GROUPING
ROLLUP
6 rows selected
4 rows selected
15 rows selected
13 rows selected
15 rows selected
13 rows selected
Topo
CUBE
18 rows selected
18 rows selected
Topo
GROUPING
A função GROUPING pode ser usada com ROLLUP ou CUBE e serve para
determinar se a linha devolvida pelo query resulta de uma agregação:
18 rows selected
select
case when grouping(deptno)=0 then to_char(deptno,'99')
when grouping(job)=0 then 'Soma por função '|| job
else 'Total geral'
end as deptno,
case when grouping(job)=0 then job
when grouping(deptno)=0 then 'Soma por departamento '||
to_char(deptno,'99')
else 'Total geral'
end as job,
sum(sal)
from emp
group by cube(deptno, job)
order by deptno, job;
DEPTNO JOB SUM(SAL)
------------------------- ------------------------- ------------------
----
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 Soma por departamento 10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 Soma por departamento 20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 Soma por departamento 30 9400
Soma por função ANALYST ANALYST 6000
Soma por função CLERK CLERK 4150
Soma por função MANAGER MANAGER 8275
Soma por função PRESIDENT PRESIDENT 5000
Soma por função SALESMAN SALESMAN 5600
Total geral Total geral 29025
18 rows selected