HAVING (Entiteit SQL)
Hiermee geeft u een zoekvoorwaarde voor een groep of een aggregaties op.
Syntaxis
[ HAVING search_condition ]
Argumenten
search_condition
Hiermee geeft u de zoekvoorwaarde voor de groep of de aggregaties waaraan moet worden voldaan. Wanneer HAVING wordt gebruikt met GROUP BY ALL, overschrijft de HAVING-component ALL.
Opmerkingen
De HAVING-component wordt gebruikt om een extra filtervoorwaarde op te geven voor het resultaat van een groepering. Als er geen GROUP BY-component is opgegeven in de queryexpressie, wordt ervan uitgegaan dat er een impliciete groep met één set wordt gebruikt.
Notitie
HAVING kan alleen worden gebruikt met de SELECT-instructie . Wanneer GROUP BY niet wordt gebruikt, gedraagt HAVING zich als een WHERE-component.
De HAVING-component werkt net als de WHERE-component, behalve dat deze wordt toegepast na de GROUP BY-bewerking. Dit betekent dat de HAVING-component alleen verwijzingen kan maken naar groeperingsaliassen en aggregaties, zoals wordt geïllustreerd in het volgende voorbeeld:
SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name
HAVING SUM(o.Quantity) > 1
In het vorige artikel worden de groepen beperkt tot alleen groepen die meer dan één product bevatten.
Opmerking
De volgende Entiteit SQL-query maakt gebruik van de OPERATORS HAVING en GROUP BY om een zoekvoorwaarde voor een groep of een aggregaties op te geven. De query is gebaseerd op het AdventureWorks Sales Model. Voer de volgende stappen uit om deze query te compileren en uit te voeren:
Volg de procedure in Procedure: Voer een query uit die PrimitieveType-resultaten retourneert.
Geef de volgende query als argument door aan de
ExecutePrimitiveTypeQuery
methode:
SELECT VALUE name FROM AdventureWorksEntities.Products
AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price