Udostępnij za pomocą


SELECT — HAVING (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Określa warunek wyszukiwania grupy lub agregacji. POSIADANIE może być używane tylko z instrukcją SELECT. USŁUGA HAVING jest zwykle używana z klauzulą GROUP BY. Jeśli funkcja GROUP BY nie jest używana, istnieje niejawna grupa zagregowana.

Transact-SQL konwencje składni

Syntax

[ HAVING <search condition> ]  

Arguments

< > search_condition Określa co najmniej jeden predykat dla grup i/lub agregacji do spełnienia. Aby uzyskać więcej informacji na temat warunków wyszukiwania i predykatów, zobacz Warunek wyszukiwania (Transact-SQL).

Nie można używać typów danych tekstowych, obrazów i ntekstów w klauzuli HAVING.

Examples

W poniższym przykładzie, który używa prostej HAVING klauzuli, pobiera sumę dla każdej SalesOrderID z SalesOrderDetail tabeli, która przekracza $100000.00wartość .

USE AdventureWorks2022;  
GO  
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal  
FROM Sales.SalesOrderDetail  
GROUP BY SalesOrderID  
HAVING SUM(LineTotal) > 100000.00  
ORDER BY SalesOrderID ;  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

W poniższym przykładzie użyto klauzuli , aby pobrać sumę HAVINGSalesAmount przekraczającą 80000 wartość dla każdej OrderDateKey z FactInternetSales tabeli.

-- Uses AdventureWorks  
  
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales   
FROM FactInternetSales  
GROUP BY OrderDateKey   
HAVING SUM(SalesAmount) > 80000  
ORDER BY OrderDateKey;  

Zobacz też

GRUPOWANIE BY (Transact-SQL)
GDZIE (Transact-SQL)