Vous pouvez utiliser l'extension ROLLUP pour produire des valeurs sous-total en l'utilisant avec la fonction SUM(). Lorsqu'il est utilisé avec SUM, ROLLUP génère des sous-totaux par rapport au niveau le plus détaillé au grand total. Les fonctions d'agrégations telles que SUM, COUNT, AVG, MIN, MAX peuvent être utilisées.
Le ROLLUP s’exécute indépendamment de toute hiérarchie des métadonnées dans votre système. Leurs calculs sont basés entièrement
sur les colonnes spécifiées dans l'instruction SELECT dans lequel ils apparaissent.
ROLLUP ne restreint pas la capacité des colonnes de la clause GROUP
BY.
Ici, nous allons comparer le résultat de 2 requêtes, l'une avec un GROUP BY et l'autre avec un GROUP BY ROLLUP.
SELECT DEPTNO, JOB, SUM (SAL)
FROM SCOTT.EMP
GROUP BY (DEPTNO, JOB)
ORDER BY DEPTNO;
|
| DEPTNO | JOB | SUM (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 |
SELECT DEPTNO, JOB, SUM (SAL)
FROM SCOTT.EMP
GROUP BY ROLLUP (DEPTNO, JOB)
ORDER BY DEPTNO;
|
| DEPTNO | JOB | SUM (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 |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
| • Update conditionnées de Tables avec MERGE INTO |