Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
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
Endpoint analityki SQL w Microsoft Fabric
Magazyn w Microsoft Fabric
Baza danych SQL w 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 opisane w tym artykule korzystają z przykładowej bazy AdventureWorks2025 ORAdventureWorksDW2025, którą można pobrać z repozytorium Azure Data SQL Samples Repository GitHub.
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
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;