GRUPPERING (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-analysendpoint i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Anger om ett angivet kolumnuttryck i en GROUP BY-lista aggregeras eller inte. GRUPPERING ger 1 för aggregerat eller 0 för ej aggregerat i resultatuppsättningen. GROUPING kan endast användas i SELECT <select-listorna> , HAVING och ORDER BY-klausulerna när GROUP BY är specificerad.

Transact-SQL syntaxkonventioner

Syntax

GROUPING ( <column_expression> )  

Arguments

<column_expression>
Är en kolumn eller ett uttryck som innehåller en kolumn i en GROUP BY-klausul .

Returtyper

tinyint

Anmärkningar

GROUPING används för att skilja de nullvärden som returneras av ROLLUP, CUBE eller GROUPING SETS från standard nullvärden. NULL som returneras som resultat av en ROLLUP-, CUBE- eller GROUPING SETS-operation är en speciell användning av NULL. Detta fungerar som en kolumnplats i resultatmängden och betyder allt.

Examples

Följande exempel grupperar SalesQuota och aggregerar SaleYTD belopp i AdventureWorks2025-databasen. Funktionen GROUPING tillämpas på kolumnen SalesQuota .

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

Resultatmängden visar två nollvärden under SalesQuota. Den första NULL representerar gruppen av nollvärden från denna kolumn i tabellen. Den andra NULL finns i sammanfattningsraden som ROLLUP-operationen lägger till. Sammanfattningsraden visar beloppen TotalSalesYTD för alla SalesQuota grupper och anges i 1 kolumnen Grouping .

Här är resultatet.

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)

Se även

GROUPING_ID (Transact-SQL)
GRUPPERAD EFTER (Transact-SQL)