- 01/21/2020
- 2 minuty na przeczytanie
-
- V
- c
- M
- m
- M
-
+4
Dotyczy: SQL Server (wszystkie obsługiwane wersje) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Określa warunek wyszukiwania dla grupy lub agregatu. HAVING może być użyte tylko z instrukcją SELECT. HAVING jest zazwyczaj używane z klauzulą GROUP BY. Jeśli klauzula GROUP BY nie jest użyta, istnieje domyślnie pojedyncza, zagregowana grupa.
Konwencje składni języka Transact-SQL
Syntaktyka
Uwaga
Aby zapoznać się ze składnią języka Transact-SQL dla SQL Server 2014 i wcześniejszych, zobacz Dokumentacja poprzednich wersji.
Argumenty
<search_condition>Wskazuje jeden lub więcej predykatów, które muszą spełniać grupy i/lub agregaty. Aby uzyskać więcej informacji na temat warunków wyszukiwania i predykatów, zobacz Warunek wyszukiwania (Transact-SQL).
Typy danych text, image i ntext nie mogą być używane w klauzuli HAVING.
Przykłady
Następujący przykład, który wykorzystuje prostą klauzulę HAVING
, pobiera sumę dla każdego SalesOrderID
z tabeli SalesOrderDetail
, która przekracza $100000.00
.
USE AdventureWorks2012 ; 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 i Parallel Data Warehouse
Następujący przykład wykorzystuje klauzulę HAVING
w celu pobrania sumy. SalesAmount
która przekracza 80000
dla każdego OrderDateKey
z tabeli FactInternetSales
.
-- Uses AdventureWorks SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales FROM FactInternetSales GROUP BY OrderDateKey HAVING SUM(SalesAmount) > 80000 ORDER BY OrderDateKey;
See Also
GROUP BY (Transact-SQL)
WHERE (Transact-SQL)
GROUP BY (Transact-SQL)
WHERE (Transact-SQL)