Delen via


SELECT - HAVING (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Hiermee geeft u een zoekvoorwaarde voor een groep of een aggregaties op. HAVING kan alleen worden gebruikt met de SELECT-instructie. HAVING wordt doorgaans gebruikt met een GROUP BY-component. Wanneer GROUP BY niet wordt gebruikt, is er een impliciete, geaggregeerde groep.

Transact-SQL syntaxis-conventies

Syntax

[ HAVING <search condition> ]  

Arguments

< > search_condition Geeft een of meer predicaten op voor groepen en/of aggregaties waaraan moet worden voldaan. Zie Zoekvoorwaarde (Transact-SQL)voor meer informatie over zoekvoorwaarden en predicaten.

De gegevenstypen tekst, afbeeldingen en ntext kunnen niet worden gebruikt in een HAVING-component.

Examples

In het volgende voorbeeld waarin een eenvoudige HAVING component wordt gebruikt, wordt het totaal opgehaald voor elk SalesOrderID van de SalesOrderDetail tabellen die groter zijn dan $100000.00de tabel.

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

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

In het volgende voorbeeld wordt een HAVING component gebruikt om het totaal SalesAmount op te halen dat voor elke OrderDateKey component uit de FactInternetSales tabel wordt overschreden80000.

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

See Also

GROUP BY (Transact-SQL)
WHERE (Transact-SQL)