GROUPING (Transact-SQL)
Eine Aggregatfunktion, die die Ausgabe einer weiteren Spalte mit dem Wert 1 bewirkt, wenn die Zeile durch den CUBE- oder den ROLLUP-Operator hinzugefügt wird. Ist die Zeile nicht das Ergebnis des CUBE- oder ROLLUP-Operators, wird der Wert 0 ausgegeben.
Die Gruppierung ist nur in der zu einer GROUP BY-Klausel zugeordneten Auswahlliste zulässig, die den CUBE- oder den ROLLUP-Operator enthält.
Transact-SQL-Syntaxkonventionen
Syntax
GROUPING ( column_name )
Argumente
- column_name
Ist eine Spalte in einer GROUP BY-Klausel, die nach NULL-Werten für CUBE oder ROLLUP testet.
Rückgabetypen
tinyint
Hinweise
Die Gruppierung wird verwendet, um die von CUBE und ROLLUP zurückgegebenen NULL-Werte von NULL-Standardwerten zu unterscheiden. Der Wert NULL, der als Ergebnis eines CUBE- oder ROLLUP-Vorgangs zurückgegeben wird, stellt eine besondere Verwendung von NULL dar. Der Wert fungiert als Spaltenplatzhalter im Resultset und bedeutet alle.
Beispiele
Im folgenden Beispiel werden SalesQuota
gruppiert und SaleYTD
-Gesamtsummen zusammengestellt. Die GROUPING
-Funktion wird auf die SalesQuota
-Spalte angewendet.
USE AdventureWorks;
GO
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
Das Resultset zeigt zwei NULL-Werte unter SalesQuota
an. Der erste NULL
-Wert stellt die Gruppe der NULL-Werte aus dieser Spalte in der Tabelle dar. Der zweite NULL
-Wert befindet sich in der Summenzeile, die vom ROLLUP-Vorgang hinzugefügt wurde. Die Summenzeile enthält die TotalSalesYTD
-Gesamtsummen für alle SalesQuota
-Gruppen und ist durch 1
in der Grouping
-Spalte gekennzeichnet.
Dies ist das Resultset.
SalesQuota TotalSalesYTD Grouping
--------- ------------- --------
NULL 1533087.5999 0
250000.00 33461260.59 0
300000.00 9299677.9445 0
NULL 44294026.1344 1
(4 row(s) affected)
Änderungsverlauf
Version | Verlauf |
---|---|
12. Dezember 2006 |
|
Siehe auch
Verweis
Aggregatfunktionen (Transact-SQL)
SELECT (Transact-SQL)