SELECT – klauzule HAVING (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Určuje podmínku hledání pro skupinu nebo agregaci. Můžete použít HAVING pouze s příkazem SELECT . Obvykle se používá HAVING s klauzulí GROUP BY . Pokud nepoužíváte GROUP BY, existuje implicitní jedna agregovaná skupina.

Transact-SQL konvence syntaxe

Syntax

[ HAVING <search condition> ]

Arguments

<search_condition>

Určuje jeden nebo více predikátů pro skupiny a agregace, které skupiny potřebují splnit. Další informace o podmínkách hledání a predikátů najdete v tématu Podmínka hledání.

V klauzuli nelze použít datové typy textu, obrázku a ntextuHAVING.

Examples

Ukázky kódu v tomto článku používají databázi or sample, kterou si můžete stáhnout z repozitáře Azure Data SQL Samples Repository GitHub.AdventureWorksDW2025AdventureWorks2025

A. Načtení součtu pro každou prodejní objednávku

Následující příklad používá HAVING klauzuli k načtení součtu pro každý SalesOrderID z SalesOrderDetail tabulky, která překračuje $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;

Příklady: Azure Synapse Analytics

B. Načtení celkového prodeje překračující danou hodnotu

Následující příklad používá HAVING klauzuli k načtení součtu SalesAmount , který přesahuje 80000 pro každou OrderDateKey z FactInternetSales tabulky.

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