GROUPING SETS-Entsprechungen
Eine GROUP BY-Klausel, die GROUPING SETS verwendet, kann ein Resultset generieren, das einem von UNION ALL mit mehreren einfachen GROUP BY-Klauseln generierten Resultset entspricht. GROUPING SETS kann ein Ergebnis generieren, das dem von einem einfachen GROUP BY-, ROLLUP- oder CUBE-Vorgang generierten Ergebnis entspricht. Andere Kombinationen von GROUPING SETS, ROLLUP oder CUBE können entsprechende Resultsets generieren.
In diesem Thema werden Beispiele für GROUPING SETS-Entsprechungen bereitgestellt. In den Beispielen werden die folgenden Abkürzungen verwendet:
Agg(): Beliebige Aggregatfunktion
(arg): Ein Argument
GROUPING SETS-Entsprechung von UNION ALL
Das Angeben von GROUPING SETS,<Gruppierungssatz> [,...n ]) als GROUP BY-Liste entspricht UNION ALL mit Abfragen, wobei jeweils einer der Gruppierungssätze die GROUP BY-Liste ist. Aggregate für Gleitkommazahlen geben möglicherweise etwas andere Ergebnisse zurück.
Die folgenden Anweisungen sind gleichwertig:
|
|
GROUPING SETS-Entsprechungen eines einfachen GROUP BY
Die folgenden Klauseln geben die gleichen Gesamtbeträge zurück:
|
|
Die folgenden Klauseln geben die gleichen einzelnen Sätze zurück:
|
|
GROUPING SETS ROLLUP-Entsprechungen
GROUP BY ROLLUP (<Liste zusammengesetzter Elemente>) mit n Dimensionen in der Eingabeliste ist äquivalent zu GROUPING SETS mit allen Präfixen (n+1) der Eingabeliste als GROUPING SETS.
Die folgenden Klauseln sind gleichwertig:
|
|
GROUPING SETS CUBE-Entsprechungen
GROUP BY CUBE (<Liste zusammengesetzter Elemente>) mit n Dimensionen in der Eingabeliste ist äquivalent zu GROUPING SETS mit dem vollständigen Satz (2n Kombinationen der Dimensionen in der Eingabeliste) der Eingabeliste als GROUPING SETS.
Die folgenden Klauseln sind gleichwertig:
|
|
Die folgenden Klauseln sind gleichwertig:
|
|
Zusammengesetzte Spalten in ROLLUP einschließlich eines Gruppierungssatzes in einem ROLLUP
Die folgenden Klauseln sind gleichwertig:
|
|
|
Zusammengesetzte Spalten in CUBE einschließlich eines Gruppierungssatzes in CUBE
Die folgenden Klauseln sind gleichwertig:
|
|
|
GROUP BY mit GROUPING SETS, ROLLUP oder CUBE
Die folgenden Klauseln sind gleichwertig:
|
|
Die folgenden Klauseln sind gleichwertig:
|
|
Die folgenden Klauseln sind gleichwertig:
|
|
ROLLUP in einer GROUPING SETS-Liste
Die folgenden Klauseln sind gleichwertig:
|
|
ROLLUP in einem Gruppierungssatz
Die folgenden Klauseln sind gleichwertig:
|
|