GROUPING (Transact-SQL)
Indique si une expression de colonne spécifiée dans une liste GROUPE PAR est regroupée ou non. GROUPING retourne 1 pour agrégation ou 0 pour aucune agrégation dans le jeu de résultats. GROUPING peut être utilisé uniquement dans les clauses SELECT <selection> liste, HAVING et ORDER BY lorsque GROUP BY est spécifié.
Syntaxe
GROUPING ( <column_expression> )
Arguments
- <expression_colonne>
Colonne ou expression qui contient une colonne dans une clause GROUP BY.
Types de retour
tinyint
Notes
GROUPING sert à distinguer les valeurs NULL retournées par CUBE, ROLLUP ou GROUPING SETS des valeurs NULL standard. La valeur NULL retournée comme résultat d'une opération CUBE, ROLLUP ou GROUPING SETS est une utilisation spéciale de NULL. Elle agit comme un espace réservé d'une colonne dans l'ensemble de résultats et signifie « tout ».
Exemples
L'exemple suivant regroupe SalesQuota et totalise les montants SaleYTD. La fonction GROUPING est appliquée à la colonne SalesQuota.
USE AdventureWorks2008R2;
GO
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
L'ensemble de résultats indique deux valeurs NULL sous SalesQuota. La première NULL représente le groupe des valeurs NULL de cette colonne dans la table. La seconde NULL se trouve dans la ligne résumée ajoutée par l'opération ROLLUP. La ligne résumée indique le montant de TotalSalesYTD pour tous les groupes SalesQuota et est indiqué par la valeur 1 dans la colonne Grouping.
Voici l'ensemble des résultats.
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)