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 » Abfrageergebnisse zusammenfassen, gruppieren und sortieren » Die GROUP BY-Klausel: Abfrageergebnisse in Gruppen organisieren

 

WHERE-Klausel und GROUP BY

Sie können eine WHERE-Klausel in einer Anweisung mit GROUP BY verwenden. Die WHERE-Klausel wird vor der GROUP BY-Klausel berücksichtigt. Zeilen, die die Bedingungen in der WHERE-Klausel nicht erfüllen, werden eliminiert, bevor eine Gruppierung erfolgt. Ein Beispiel:

SELECT  Name, AVG( UnitPrice )
   FROM Products
   WHERE ID > 400
   GROUP BY Name;

Nur die Zeilen mit ID-Werten von mehr als 400 werden in die Gruppen einbezogen, die zur Erstellung der Abfrageergebnisse benutzt werden.

Beispiel

Folgende Abfrage zeigt den Einsatz der Klauseln WHERE, GROUP BY und HAVING in einer Abfrage:

SELECT Name, SUM( Quantity )
   FROM Products
   WHERE Name LIKE '%shirt%'
   GROUP BY Name
   HAVING SUM( Quantity ) > 100;
Name SUM(Products.Quantity)

Tee Shirt

157

In diesem Beispiel gilt:

  • Die WHERE-Klausel enthält nur Zeilen, die einen Namen mit dem Wortbestandteil shirt enthalten (Tee Shirt, Sweatshirt).

  • Die GROUP BY-Klausel sammelt die Zeilen mit einem gemeinsamen Namen.

  • Die Aggregatfunktion SUM berechnet die Gesamtmenge der für jede Gruppe verfügbaren Artikel.

  • Die HAVING-Klausel schließt aus den Endergebnissen die Gruppe aus, deren Lagersummen 100 nicht überschreiten.