- 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)