Sdílet prostřednictvím


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:

  1. Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky PrimitiveType.

  2. 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

Viz také