Partager via


GROUPEMENT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPoint de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL 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 regroupe SalesQuota et agrége SaleYTD les montants dans la base de données AdventureWorks2025. 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.

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)

Voir aussi

GROUPING_ID (Transact-SQL)
GROUPE PAR (Transact-SQL)