Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Daten abfragen » Aggregatfunktionen

 

WHERE- und HAVING-Klauseln kombinieren

Manchmal können Sie dieselbe Gruppe von Zeilen sowohl mit einer WHERE-Klausel als auch mit einer HAVING-Klausel angeben. In diesen Fällen ist keine der beiden Methoden effektiver als die andere. Der Optimierer analysiert stets automatisch jede Anweisung, die Sie eingeben, und wählt eine effiziente Methode für deren Ausführung. Sie sollten die Syntax verwenden, mit der das gewünschte Ergebnis am deutlichsten beschrieben wird. Im Allgemeinen bedeutet das, dass ungewünschte Zeilen in früheren Klauseln entfernt werden müssen.

Beispiel

Mit der folgenden Anweisung listen Sie alle Verkäufer mit mehr als 55 Aufträgen und einer Kennung auf, die größer als 1.000 ist:

SELECT SalesRepresentative, COUNT( * )
FROM SalesOrders
WHERE SalesRepresentative > 1000
GROUP BY SalesRepresentative
HAVING count( * ) > 55
ORDER BY SalesRepresentative;

Die nachfolgende Anweisung liefert dieselben Ergebnisse.

SELECT SalesRepresentative, COUNT( * )
FROM SalesOrders
GROUP BY SalesRepresentative
HAVING count( * ) > 55 AND SalesRepresentative > 1000
ORDER BY SalesRepresentative;

SQL Anywhere stellt fest, dass beide Anweisungen dieselbe Ergebnismenge beschreiben, und führt jede Anweisung effizient aus.