GROUPING (Transact-SQL)
S’applique à : SQL Server base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Point de terminaison analytique SQL dans Microsoft Fabric Entrepôt dans Microsoft Fabric
Indique si une expression de colonne spécifiée dans une liste GROUP BY est agrégée ou non. GROUPING retourne 1 pour agrégé ou 0 pour non agrégé dans le jeu de résultats. GROUPING ne peut être utilisé que dans les clauses de la liste <de sélection> SELECT, HAVING, ORDER BY lorsque GROUP BY est spécifié.
Conventions de la syntaxe Transact-SQL
Syntaxe
GROUPING ( <column_expression> )
Arguments
<column_expression>
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 espace réservé de colonne dans le jeu de résultats et signifie « All » (tout).
Exemples
L’exemple suivant groupe SalesQuota
et agrège les montants SaleYTD
dans la base de données AdventureWorks2022. La fonction GROUPING
est appliquée à la colonne SalesQuota
.
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
Le jeu de résultats indique deux valeurs NULL sous SalesQuota
. La première valeur NULL
représente le groupe des valeurs NULL de cette colonne dans la table. La seconde valeur NULL
se trouve dans la ligne résumée ajoutée par l'opération ROLLUP. La ligne du total indique les montants TotalSalesYTD
pour tous les groupes SalesQuota
et est indiquée par 1
dans la colonne Grouping
.
Voici le jeu de résultats obtenu.
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)