Equivalenti GROUPING SETS
Una clausola GROUP BY che utilizza GROUPING SETS può generare un set di risultati equivalente al set generato da un'operazione UNION ALL di più clausole GROUP BY semplici. I GROUPING SETS possono generare un risultato equivalente a quello generato da una semplice operazione GROUP BY, ROLLUP o CUBE. Combinazioni diverse di GROUPING SETS, ROLLUP o CUBE possono generare set di risultati equivalenti.
In questo argomento vengono forniti esempi degli equivalenti GROUPING SETS. Le abbreviazioni seguenti sono utilizzate negli esempi:
Agg(): qualsiasi funzione di aggregazione
(arg): un argomento
Equivalente GROUPING SETS di UNION ALL
Specificare GROUPING SETS (<set di raggruppamenti> [,...n ]) come elenco GROUP BY equivale a un'operazione UNION ALL di query, ciascuna con uno dei set di raggruppamenti indicato come il proprio elenco GROUP BY. Le funzioni di aggregazione su numeri a virgola mobile possono restituire risultati leggermente differenti.
Le due istruzioni seguenti sono equivalenti:
|
|
Equivalenti GROUPING SETS di un'operazione GROUP BY semplice
Nelle clausole seguenti vengono restituiti gli stessi totali complessivi:
|
|
Nelle clausole seguenti vengono restituiti gli stessi singoli set:
|
|
Equivalenti GROUPING SETS ROLLUP
GROUP BY ROLLUP (<elenco di elementi composti>) con dimensioni n nell'elenco di input equivale a GROUPING SETS, con tutti i prefissi (n+1) dell'elenco degli input come GROUPING SETS.
Le due clausole seguenti sono equivalenti:
|
|
Equivalenti GROUPING SETS CUBE
GROUP BY CUBE (<elenco di elementi composti>) con dimensioni n nell'elenco di input equivale a GROUPING SETS, con il set completo (2 combinazioni n delle dimensioni nell'elenco degli input) dell'elenco degli input come GROUPING SETS.
Le due clausole seguenti sono equivalenti:
|
|
Le due clausole seguenti sono equivalenti:
|
|
Colonne composite in ROLLUP che includono un set di raggruppamenti in un ROLLUP
Le due clausole seguenti sono equivalenti:
|
|
|
Colonne composite in CUBE che includono un set di raggruppamenti in un CUBE
Le due clausole seguenti sono equivalenti:
|
|
|
GROUP BY che contiene GROUPING SETS, ROLLUP o CUBE
Le due clausole seguenti sono equivalenti:
|
|
Le due clausole seguenti sono equivalenti:
|
|
Le due clausole seguenti sono equivalenti:
|
|
ROLLUP incluso in un elenco GROUPING SETS
Le due clausole seguenti sono equivalenti:
|
|
ROLLUP incluso in un set di raggruppamenti
Le due clausole seguenti sono equivalenti:
|
|