Delen via


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:

  1. Volg de procedure in Procedure: Voer een query uit die PrimitieveType-resultaten retourneert.

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

Zie ook