Delen via


GROEPERING (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft aan of een gespecificeerde kolomuitdrukking in een GROUP BY-lijst wordt geaggregeerd of niet. GROUPING levert 1 op voor geaggregeerd of 0 voor niet geaggregeerd in de resultaatset. GROUPING kan alleen worden gebruikt in de clausules SELECT <select> , HHAVING en ORDER BY wanneer GROUP BY is opgegeven.

Transact-SQL syntaxis-conventies

Syntaxis

GROUPING ( <column_expression> )  

Arguments

<column_expression>
Is een kolom of expressie die een kolom bevat in een GROUP BY-clausule.

Retourtypen

tinyint

Opmerkingen

GROUPING wordt gebruikt om de nullwaarden die door ROLLUP, CUBE of GROUPING SETS worden teruggegeven te onderscheiden van standaard null-waarden. De NULL die wordt teruggegeven als resultaat van een ROLLUP-, CUBE- of GROUPING SETS-operatie is een speciaal gebruik van NULL. Dit fungeert als een kolom-placeholder in de resultaatset en betekent alles.

Voorbeelden

Het volgende voorbeeld groepeert SalesQuota en aggregeert SaleYTD hoeveelheden in de AdventureWorks2025-database. De GROUPING functie wordt toegepast op de SalesQuota kolom.

SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'  
FROM Sales.SalesPerson  
GROUP BY SalesQuota WITH ROLLUP;  
GO  

De resultaatverzameling toont twee nulwaarden onder SalesQuota. De eerste NULL vertegenwoordigt de groep nulwaarden uit deze kolom in de tabel. De tweede NULL bevindt zich in de samenvattingsrij die door de ROLLUP-operatie is toegevoegd. De samenvattingsrij toont de TotalSalesYTD bedragen voor alle SalesQuota groepen en wordt aangegeven door 1 in de Grouping kolom.

Hier is het resultatenoverzicht.

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)

Zie ook

GROUPING_ID (Transact-SQL)
GROEP DOOR (Transact-SQL)