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.

Themenlink (Symbol)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

Geänderter Inhalt:
  • Die OVER-Klausel wurde entfernt.

Siehe auch

Verweis

Aggregatfunktionen (Transact-SQL)
SELECT (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005