SELECT – HAVING-sats (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 ett sökvillkor för en grupp eller en aggregering. Du kan bara använda HAVING med -instruktionen SELECT . Vanligtvis använder HAVING du med en GROUP BY sats. När du inte använder GROUP BYfinns det en implicit enskild, aggregerad grupp.

Transact-SQL syntaxkonventioner

Syntax

[ HAVING <search condition> ]

Arguments

<search_condition>

Anger ett eller flera predikat för grupper och aggregeringar som grupperna behöver uppfylla. Mer information om sökvillkor och predikat finns i Sökvillkor.

Du kan inte använda datatyperna text, bild och ntext i en HAVING sats.

Examples

Kodexemplen i denna artikel använder AdventureWorks2025 exempeldatabasenAdventureWorksDW2025, som du kan ladda ner från Azure Data SQL Samples Repository GitHub-arkivet.

A. Hämta totalsumma för varje försäljningsorder

I följande exempel används en HAVING sats för att hämta summan för varje SalesOrderID från tabellen SalesOrderDetail som överskrider $100000.00.

USE AdventureWorks2025;
GO

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

Exempel: Azure Synapse Analytics

B. Hämta total försäljning som överstiger ett angivet värde

I följande exempel används en HAVING sats för att hämta summan SalesAmount som överskrider 80000 för varje OrderDateKey från FactInternetSales tabellen.

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