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:
Postępuj zgodnie z procedurą w temacie Instrukcje: Wykonywanie zapytania zwracającego wyniki Typ pierwotny.
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