Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Określa warunek wyszukiwania grupy lub agregacji. Można użyć HAVING tylko z instrukcją SELECT . Zazwyczaj używasz klauzuli HAVING z klauzulą GROUP BY . Jeśli nie używasz metody GROUP BY, 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 agregacji, które grupy muszą spełniać. Aby uzyskać więcej informacji na temat warunków wyszukiwania i predykatów, zobacz Warunek wyszukiwania.
W klauzuli nie można używać typów danych tekstowych, obrazów i ntekstówHAVING.
Examples
Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.
A. Pobieranie sumy dla każdego zamówienia sprzedaży
W poniższym przykładzie użyto klauzuli , aby pobrać sumę HAVING dla każdej SalesOrderID z SalesOrderDetail tabeli, która przekracza $100000.00wartość .
USE AdventureWorks2025;
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)
B. Pobieranie całkowitej sprzedaży przekraczającej daną wartość
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;