SELECT – HAVING (Transact-SQL)

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *