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.
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 Set-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, GROUP-Klausel
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, HAVING-Klausel
Weitere Beispiele zur Datenanfrage