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 Aggregat an. Wenn HAVING mit GROUP BY ALL verwendet wird, setzt die HAVING-Klausel ALL außer Kraft.

Bemerkungen

Mit der HAVING-Klausel kann für das Ergebnis einer Gruppierung eine zusätzliche Filterbedingung angegeben werden. Wenn Sie im Abfrageausdruck keine GROUP BY-Klausel angeben, wird eine implizite einzelne Gruppe 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 dem Unterschied, dass sie nach dem GROUP BY-Vorgang angewendet wird. Dies bedeutet, dass die HAVING-Klausel nur auf Gruppierungsaliase und Aggregate verweisen 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 Beispiel werden die Gruppen auf jene eingeschränkt, die mehrere Produkte umfassen.

Beispiel

In der folgenden Entity SQL-Abfrage wird mit dem HAVING-Operator und dem GROUP BY-Operator eine Suchbedingung für eine Gruppe oder ein Aggregat angegeben. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:

  1. Verwenden Sie die Vorgehensweise unter 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