HAVING (Entity SQL)
Specifica una condizione di ricerca per un gruppo o un'aggregazione.
[ HAVING search_condition ]
Argomenti
- search_condition
Specifica la condizione di ricerca che il gruppo o l'aggregazione deve soddisfare. Se viene utilizzata assieme alla clausola GROUP BY ALL, la clausola HAVING è prioritaria rispetto a ALL.
Osservazioni
La clausola HAVING viene utilizzata 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 utilizzata solo con l'istruzione SELECT (Entity SQL).Se la clausola GROUP BY (Entity SQL) non viene utilizzata, la funzionalità della clausola HAVING corrisponde a quella di 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 utilizzati 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 indicata in Procedura: eseguire una query che restituisce risultati PrimitiveType (EntityClient).
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