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.

Icône Lien de rubriqueConventions 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

Contenu modifié :
  • Suppression de la clause OVER.

Voir aussi

Référence

Fonctions d'agrégation (Transact-SQL)
SELECT (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005