Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Bilden von Gruppen: GROUP BY, HAVING Dokument im Navigationsbaum lokalisieren

Voraussetzungen

Sie benötigen die Demo-Daten für das SQL-Tutorial.

Starten Sie das Query Tool SQL Studio als Datenbankadministrator MONA mit dem Kennwort RED und melden Sie sich an die Demo-Datenbankinstanz DEMODB an.

Gruppieren von Werten: GROUP BY

Mit Hilfe der GROUP-Klausel können Sie die Werte einer Spalte gruppieren und für jede dieser Gruppen gegebenenfalls weitere Berechnungen anhand der anderen Spaltenwerte durchführen. Außer für die zu gruppierende Spalte müssen Sie für jede andere Spalte eine StrukturlinkSet-Funktion angeben. Die GROUP-Klausel müssen Sie nach der FROM- und WHERE-Klausel angeben.

 

SELECT type, SUM(free)
  FROM hotel.room
    GROUP BY type

Anzahl der freien Zimmer, gruppiert nach Zimmertyp

Die hier verwendete Set-Funktion ist die Funktion SUM, die die Summe der Werte bildet.

Ergebnis

Da die zweite Spalte der Ergebnistabelle keine vordefinierte Bezeichung erhält, wird vom Datenbanksystem die Spaltenbezeichnung EXPRESSION1 gewählt.

TYPE

EXPRESSION1

Double

1088

Single

376

Suite

336

 

SELECT type, MIN(price) min_price, FIXED (AVG(price),5,2) avg_price, MAX(price) max_price
  FROM hotel.room
    GROUP BY type

Berechnen der Preiskategorien der Zimmer, gruppiert nach Zimmertyp

Die hier verwendeten Set-Funktionen sind MIN (minimaler Wert), AVG (Durchschnittswert) und MAX (Maximalwert).

Ergebnis

Die Spalten der Ergebnistabelle erhalten die Bezeichungen MIN_PRICE, AVG_PRICE und MAX_PRICE.

TYPE

MIN_PRICE

AVG_PRICE

MAX_PRICE

Double

80

160.67

270

Single

45

96.67

160

Suite

300

475

700

 

Siehe auch:

Weitere Beispiele für die Angabe von Set-Funktionen

SQL-Referenzhandbuch, StrukturlinkGROUP-Klausel

 

Gruppen mit Bedingungen: HAVING

Mit Hilfe der GROUP-Klausel können Sie die Werte einer Spalte gruppieren. Mit Hilfe der HAVING-Klausel können Sie anschließend Gruppen aus der Zwischenergebnistabelle ausschließen. Im Unterschied zum Verwenden der WHERE-Klausel für das Ausschließen von Werten, geht dem Gebrauch der HAVING-Klausel im Normalfall die Verwendung einer Set-Funktion, die sich auf eine gesamte Spalte einer Zwischenergebnistabelle bezieht, voraus.

 

SELECT type, MIN(price) min_price, FIXED(AVG(price),5,2) avg_price, MAX(price) max_price
  FROM hotel.room
    GROUP BY type
    HAVING MIN(price) >= 70

Berechnen der Preiskategorien der Zimmer, gruppiert nach Zimmertyp, Anzeige nur der Zimmertypen, die Zimmer zum Preis von mindestens 80 Euro haben

Ergebnis

TYPE

MIN_PRICE

AVG_PRICE

MAX_PRICE

Double

80

160.67

270

Suite

300

475

700

 

Siehe auch:

SQL-Referenzhandbuch, StrukturlinkHAVING-Klausel

Weitere Beispiele zur Datenanfrage

Ende des Inhaltsbereichs