HAVING (Entity SQL)
Specifica una condizione di ricerca per un gruppo o una funzione di aggregazione.
Sintassi
[ HAVING search_condition ]
Argomenti
search_condition
Specifica la condizione di ricerca che il gruppo o l'aggregazione deve soddisfare. Se viene usata assieme alla clausola GROUP BY ALL, la clausola HAVING è prioritaria rispetto a ALL.
Osservazioni:
La clausola HAVING viene usata per specificare una condizione di filtro aggiuntiva sul risultato di un raggruppamento. Se non viene specificata alcuna clausola GROUP BY nell'espressione di query, viene presupposto un gruppo con singolo set implicito.
Nota
La clausola HAVING può essere usata solo con l'istruzione SELECT. Quando non si usa GROUP BY, HAVING si comporta come una clausola WHERE.
La clausola HAVING funziona come la clausola WHERE eccetto per il fatto che viene applicata dopo l'operazione GROUP BY. Questo significa che la clausola HAVING può fare riferimento solo alle aggregazioni e agli alias di raggruppamento, come illustrato nell'esempio seguente:
SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name
HAVING SUM(o.Quantity) > 1
L'esempio precedente consente di limitare i gruppi esclusivamente a quelli che includono più di un prodotto.
Esempio
Nella query Entity SQL seguente vengono usati gli operatori HAVING e GROUP BY per specificare una condizione di ricerca per un gruppo o un'aggregazione. La query è basata sul modello Sales di AdventureWorks. Per compilare ed eseguire questa query, effettuare le operazioni seguenti:
Seguire la procedura descritta in Procedura: Eseguire una query che restituisce risultati PrimitiveType.
Passare la query seguente come argomento al metodo
ExecutePrimitiveTypeQuery
:
SELECT VALUE name FROM AdventureWorksEntities.Products
AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price