HAVING (Entity SQL)
Určuje podmínku hledání pro skupinu nebo agregaci.
Syntaxe
[ HAVING search_condition ]
Argumenty
search_condition
Určuje podmínku hledání pro skupinu nebo agregaci, která se má splnit. Pokud se funkce HAVING používá se GROUP BY ALL, klauzule HAVING přepíše all.
Poznámky
Klauzule HAVING slouží k určení další podmínky filtrování pro výsledek seskupení. Pokud ve výrazu dotazu není zadaná žádná klauzule GROUP BY, předpokládá se implicitní skupina s jednou sadou.
Poznámka:
Funkce HAVING se dá použít pouze s příkazem SELECT . Pokud se funkce GROUP BY nepoužívá, funkce HAVING se chová jako klauzule WHERE.
Klauzule HAVING funguje jako klauzule WHERE s tím rozdílem, že se použije po operaci GROUP BY. To znamená, že klauzule HAVING může odkazovat pouze na seskupovací aliasy a agregace, jak je znázorněno v následujícím příkladu:
SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name
HAVING SUM(o.Quantity) > 1
Předchozí omezení skupin omezuje jenom na ty, které obsahují více než jeden produkt.
Příklad
Následující dotaz Entity SQL používá operátory HAVING a GROUP BY k určení podmínky hledání pro skupinu nebo agregaci. Dotaz je založený na prodejním modelu AdventureWorks. Chcete-li tento dotaz zkompilovat a spustit, postupujte takto:
Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky PrimitiveType.
Jako argument metody
ExecutePrimitiveTypeQuery
předejte následující dotaz:
SELECT VALUE name FROM AdventureWorksEntities.Products
AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price