HAVING (Entity SQL)

Określa warunek wyszukiwania grupy lub agregacji.

Składnia

[ HAVING search_condition ]  

Argumenty

search_condition
Określa warunek wyszukiwania grupy lub agregacji do spełnienia. W przypadku użycia funkcji GROUP BY ALL klauzula HAVING zastępuje WSZYSTKIE.

Uwagi

Klauzula HAVING służy do określania dodatkowego warunku filtrowania w wyniku grupowania. Jeśli w wyrażeniu zapytania nie określono żadnej klauzuli GROUP BY, przyjmuje się, że przyjmuje się niejawną grupę jednostawową.

Uwaga

POSIADANIE może być używane tylko z instrukcją SELECT . Gdy funkcja GROUP BY nie jest używana, zachowanie FUNKCJI JEST podobne do klauzuli WHERE.

Klauzula HAVING działa jak klauzula WHERE, z tą różnicą, że jest stosowana po operacji GROUP BY. Oznacza to, że klauzula HAVING może odwoływać się tylko do aliasów grupowania i agregacji, jak pokazano w poniższym przykładzie:

SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name  
HAVING SUM(o.Quantity) > 1  

Poprzednia opcja ogranicza grupy tylko do tych, które zawierają więcej niż jeden produkt.

Przykład

Następujące zapytanie Entity SQL używa operatorów HAVING i GROUP BY, aby określić warunek wyszukiwania dla grupy lub agregacji. Zapytanie jest oparte na modelu AdventureWorks Sales. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:

  1. Postępuj zgodnie z procedurą w temacie Instrukcje: Wykonywanie zapytania zwracającego wyniki Typ pierwotny.

  2. Przekaż następujące zapytanie jako argument do ExecutePrimitiveTypeQuery metody :

SELECT VALUE name FROM AdventureWorksEntities.Products 
    AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price

Zobacz też