Udostępnij za pomocą


GRUPOWANIE (Transact-SQL)

Dotyczy do:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint analityki SQL w Microsoft FabricMagazyn w Microsoft FabricBaza danych SQL w Microsoft Fabric

Wskazuje, czy określone wyrażenie kolumnowe w liście GROUP BY jest agregowane, czy nie. GROUPING daje 1 dla zbioru zagregowanego lub 0 dla niezagregowanego w zbiorze wyników. GROUPING może być używany tylko w klauzulach SELECT <> select, HAVING i ORDER BY, gdy określono GROUP BY.

Transact-SQL konwencje składni

Składnia

GROUPING ( <column_expression> )  

Arguments

<column_expression>
Jest kolumną lub wyrażeniem, które zawiera kolumnę w klauzuli GROUP BY .

Typy zwracane

tinyint

Uwagi

GROUPING służy do odróżnienia wartości null zwracanych przez ROLLUP, CUBE lub GROUPING SETS od standardowych wartości null. NULL zwracany w wyniku operacji ROLLUP, CUBE lub GROUPING SETS jest specjalnym zastosowaniem NULL. Działa to jako zastępstwo kolumn w zbiorze wyników i oznacza wszystko.

Przykłady

Poniższy przykładowy przykład grupuje SalesQuota i agreguje SaleYTD kwoty w bazie AdventureWorks2025. Funkcja ta GROUPING jest stosowana do kolumny SalesQuota .

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

Zbiór wyników pokazuje dwie wartości zerowe pod .SalesQuota Pierwsza NULL reprezentuje grupę wartości zerowych z tej kolumny w tabeli. Drugi NULL znajduje się w wierszu podsumowania dodanym przez operację ROLLUP. Wiersz podsumowujący pokazuje kwoty TotalSalesYTD dla wszystkich SalesQuota grup i jest oznaczony w kolumnie 1Grouping .

Oto zestaw wyników.

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)

Zobacz też

GROUPING_ID (Transact-SQL)
GRUPOWANIE BY (Transact-SQL)