GROUPING SETS
Eine SQL-Erweiterung von GROUP BY, mit der sich mehrere unterschiedliche Gruppierungen in einer einzigen Abfrage berechnen lassen. Statt mehrere SELECTs per UNION zu verknüpfen, erhält man z. B. Summen pro Land, pro Produkt UND die Gesamtsumme in einem Rutsch.
Syntax: GROUP BY GROUPING SETS ((land), (produkt), ()) → eine Ergebnismenge mit drei Aggregationsebenen. Die leere Menge () liefert die Gesamtsumme. Die Funktion GROUPING() zeigt an, zu welcher Ebene eine Zeile gehört (um "NULL = Gesamtsumme" von einem echten NULL-Wert zu unterscheiden). Einsatzfall: Berichte und Dashboards, die gleichzeitig Zwischensummen über mehrere Dimensionen brauchen. ROLLUP und CUBE sind Abkürzungen: ROLLUP liefert hierarchische Zwischensummen, CUBE alle Kombinationen. SQL:1999-Standard, unterstützt von PostgreSQL, SQL Server, Oracle, MySQL 8. Deutlich effizienter, als die Tabelle mehrfach mit separaten Aggregationen zu lesen.