GROUPING (Transact-SQL)
Fonction d'agrégation qui provoque la sortie d'une colonne supplémentaire avec la valeur 1 lorsqu'une ligne est ajoutée par l'opérateur CUBE ou ROLLUP, ou la valeur 0 lorsque la ligne n'est pas le résultat de CUBE ou ROLLUP.
Le regroupement n'est autorisé que dans la liste de sélection associée à une clause GROUP BY qui contient un opérateur CUBE ou ROLLUP.
Conventions de la syntaxe de Transact-SQL
Syntaxe
GROUPING ( column_name )
Arguments
- column_name
Colonne dans une clause GROUP BY qui permet de tester les valeurs NULL de CUBE ou ROLLUP.
Notes
Le regroupement sert à distinguer les valeurs NULL retournées par CUBE et ROLLUP à partir des valeurs NULL standard. La valeur NULL retournée comme résultat d'une opération CUBE ou ROLLUP 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 ».
Types de retour
tinyint
Exemples
L'exemple suivant regroupe SalesQuota
et totalise les montants SaleYTD
. La fonction GROUPING
est appliquée à la colonne SalesQuota
.
USE AdventureWorks;
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)
Historique des modifications
Version | Historique |
---|---|
12 décembre 2006 |
|
Voir aussi
Référence
Fonctions d'agrégation (Transact-SQL)
SELECT (Transact-SQL)