Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die GROUP BY-Klausel enthält die folgenden Komponenten:
- Einen aggregatfreien Ausdruck oder mehrere aggregatfreie Ausdrücke. Hierbei handelt es sich in der Regel um Verweise auf die Gruppierungsspalten.
- Das ALL-Schlüsselwort (optional). Dieses legt fest, dass alle von der GROUP BY-Klausel erstellten Gruppen selbst dann zurückgegeben werden, wenn einige der Gruppen keine Zeilen enthalten, die die Suchbedingungen erfüllen.
- CUBE oder ROLLUP.
- In der Regel wird die HAVING-Klausel in Verbindung mit der GROUP BY-Klausel verwendet, obwohl HAVING auch separat angegeben werden kann.
Sie können nach einem Ausdruck gruppieren, sofern dieser keine Aggregatfunktionen enthält. Beispiel:
SELECT DATEPART(yy, HireDate) AS Year,
COUNT(*) AS NumberOfHires
FROM AdventureWorks.HumanResources.Employee
GROUP BY DATEPART(yy, HireDate)
Dies ist das Resultset.
Year NumberOfHires
----------- -------------
1997 2
2001 21
2000 45
1996 1
2003 3
1999 198
1998 16
2002 4
(8 row(s) affected)
In einer GROUP BY-Klausel müssen Sie den Namen einer Tabellen- oder Sichtspalte angeben, nicht den Namen einer mithilfe einer AS-Klausel zugewiesenen Resultsetspalte. Beispielsweise ist es nicht zulässig, die GROUP BY DATEPART(yy, HireDate)-Klausel durch GROUP BY Year zu ersetzen.
Zur Schachtelung von Gruppen können Sie in der GROUP BY-Klausel mehrere Spalten angeben; Sie können also eine Tabelle nach beliebigen Spaltenkombinationen gruppieren. Die folgende Abfrage ermittelt beispielsweise den Durchschnittspreis sowie die Summe der diesjährigen Verkäufe, gruppiert nach Produkt-ID und Sonderangebots-IDs:
USE AdventureWorks;
GO
SELECT ProductID, SpecialOfferID, AVG(UnitPrice) AS 'Average Price',
SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY ProductID, SpecialOfferID
ORDER BY ProductID
GO