Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databá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.
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í ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
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 a Analytický platformový systém (PDW)
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;