Freigeben über


HAVING (Entity SQL)

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

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

Hinweise

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.

Bb399595.note(de-de,VS.100).gifHinweis:
HAVING kann nur mit der SELECT (Entity SQL)-Anweisung verwendet werden.Ohne GROUP BY (Entity SQL) 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. Die Abfrage basiert auf dem AdventureWorks Sales-Modell. Führen Sie folgende Schritte durch, um diese Abfrage zu kompilieren und auszuführen:

  1. Verwenden Sie das Verfahren unter Gewusst wie: Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt (EntityClient).

  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

Konzepte

Entity SQL-Referenz
Abfrageausdrücke (Entity SQL)