Freigeben über


HAVING (Entity SQL)

Gibt eine Suchbedingung für eine Gruppe oder ein Aggregat an.

Syntax

[ HAVING search_condition ]  

Argumente

search_condition
Gibt die Suchbedingung für die Gruppe oder das zu erfüllende Aggregat an. Wenn HAVING mit GROUP BY ALL verwendet wird, überschreibt die HAVING-Klausel ALL.

Bemerkungen

Die HAVING-Klausel wird verwendet, um eine zusätzliche Filterbedingung für das Ergebnis einer Gruppierung anzugeben. Wenn im Abfrageausdruck keine GROUP BY-Klausel angegeben wird, wird eine implizite Einzelsatzgruppe angenommen.

Hinweis

HAVING kann nur mit der SELECT-Anweisung verwendet werden. Wenn GROUP BY nicht verwendet wird, verhält sich HAVING wie eine WHERE-Klausel.

Die HAVING-Klausel funktioniert wie die WHERE-Klausel, mit der Ausnahme, dass sie nach dem GROUP BY-Vorgang angewendet wird. Dies bedeutet, dass die HAVING-Klausel nur Verweise auf Gruppierungsaliasen und Aggregate erstellen kann, wie im folgenden Beispiel veranschaulicht:

SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name  
HAVING SUM(o.Quantity) > 1  

Im vorherigen Wird die Gruppe auf die Gruppen beschränkt, die mehr als ein Produkt enthalten.

Beispiel

Die folgende Entity SQL-Abfrage verwendet die HAVING- und GROUP BY-Operatoren, um eine Suchbedingung für eine Gruppe oder ein Aggregat anzugeben. Die Abfrage basiert auf dem AdventureWorks Sales Model. Führen Sie die folgenden Schritte aus, um diese Abfrage zu kompilieren und auszuführen:

  1. Gehen Sie wie folgt vor : Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt.

  2. Übergeben Sie die folgende Abfrage als Argument an die ExecutePrimitiveTypeQuery Methode:

SELECT VALUE name FROM AdventureWorksEntities.Products 
    AS P GROUP BY P.Name HAVING MAX(P.ListPrice) > @price

Siehe auch