Spirit of Discovery. Fountain of Ideas. Genius in Innovation. Mind of a Visionary.

Aggregation (Cube, Grouping, Rollup)

CUBE

Wenn du mehrere Dimensionen hast, kannst du die CUBE-Funktion verwenden. Stell dir vor, du hast die Dimensionen Zeit (year), Bundesstaat (state) und Produkt (product). Wenn du die CUBE-Funktion verwendest, erhältst du Einblicke in alle möglichen Kombinationen dieser Werte (du erhältst also alle möglichen Zwischensummen). Eine partielle Cube-Abfrage ist ebenfalls möglich.

SELECT …
FROM …
WHERE …
GROUP BY CUBE(product, year, state);

Auch ein partielles Rollup ist möglich, wenn nur einige Zwischensummen benötigt werden:

SELECT …
FROM …
WHERE …
GROUP BY product, CUBE(year, state);

GROUPING

ROLLUP

Die ROLLUP-Klausel fügt Zwischensummen und eine Gesamtsumme hinzu. Sie erweitert die GROUP BY-Klausel und ist besonders nützlich für Zeitwerte oder geografische Hierarchien (z. B. Länder, Bundesstaaten, Städte).
ROLLUP beginnt mit der rechten Spalte und geht nach links.

GROUP BY ROLLUP(year, month, day)
GROUP BY ROLLUP(country, state, city)

Auch ein partielles Rollup ist möglich, wenn nur einige Zwischensummen benötigt werden:

SELECT …
FROM …
WHERE …
GROUP BY col1, col2, ROLLUP(country, state, city);

Diese Funktionen sind besonders hilfreich für Berichte und analytische Abfragen, da sie aggregierte Werte für verschiedene Kombinationen liefern.