SQL Server 2008, Groupings Sets
Nov
10
Written by:
10.11.2007
Grouping Sets sind eine Erweiterung des GROUP BY und vereinfachen die Schreibweise für Abfragen, in denen Teilsummen bestimmt werden.
Grouping Sets sind eine Erweiterung des GROUP BY.
Der Vorteil liegt darin, dass mehrfache Gruppierungen in einer Abfrage definiert werden können, d.h Grouping Sets lassen sich durch UNION ALL Abfragen erklären.
Beispiel für ein Grouping Set mit Gruppierungen nach customer und year, wobei jeweils eine Summenzeile erzeugt wird:
SELECT customer, year, SUM(sales)
FROM T
GROUP BY GROUPING SETS ((customer), (year))
Äquivalentes Beispiel mir UNION ALL:
SELECT customer, NULL as year, SUM(sales)
FROM T
GROUP BY customer
UNION ALL
SELECT NULL as customer, year, SUM(sales)
FROM T
GROUP BY year
Ein weiteres Beispiel mit den Datenausgaben dazu:

Man erhält nur die Summenwerte der gewünschten Spalten. (Nicht alle Möglichkeiten der Spalten für die Gruppierung/Summierung sind in diesem Beispiel genutzt.)