Abfragen: Aggregation » Aufgaben

Alle Aufgaben beziehen sich auf die Datenbanken fahrschule und onlineshop und können mit dem SQL-Browser gelöst werden.

Verwende die Datenbank fahrschule.

„Die Anzahl aller Schüler/innen“

Verwende COUNT.

Erwartetes Ergebnis:

SELECT COUNT(*) AS anzahl
FROM   fahrschueler
Verwende die Datenbank fahrschule.

„Die mittlere Anzahl der Fahrstunden (arithmetisches Mittel), welche die Schüler/innen absolviert haben“

Verwende AVG.

Erwartetes Ergebnis:

SELECT AVG(anz_fahrstunden) AS mittlere_anzahl
FROM   fahrschueler
Verwende die Datenbank fahrschule.

„Häufigkeitsverteilung der Anzahl der Fahrstunden, die ein Schüler absolviert hat, sortiert nach der Anzahl der Fahrstunden“

Z.B.: 16 Schüler haben 20 Fahrstunden absolviert, 12 Schüler haben 21 Fahrstunden absolviert, usw.

Tipp: Verwende GROUP BY, um die Schüler nach Fahrstundenanzahlen zu gruppieren. Verwende dann COUNT(*), um innerhalb jeder Gruppe zu zählen.

Erwartetes Ergebnis:

SELECT anz_fahrstunden, COUNT(*) AS haeufigkeit
FROM   fahrschueler
GROUP BY anz_fahrstunden
ORDER BY anz_fahrstunden
Verwende die Datenbank fahrschule.

„Vornamen und Nachnamen der Fahrlehrer, sowie die Anzahl der Schüler, die jede/r Fahrlehrer/in unterrichtet hat, sortiert nach der Schülerzahl“

Gehe in drei Schritten vor.

  1. Verwende einen Join, um alle Fahrschüler mit ihren zugehörigen Fahrlehrern zu verbinden.
  2. Verwende GROUP BY, um nach Fahrlehrern zu gruppieren.
  3. Zähle innerhalb jeder Gruppe (also pro Fahrlehrer) die Schüler mit COUNT

Sortiere abschließend nach der Schülerzahl.

Erwartetes Ergebnis:

SELECT   fl.vorname, fl.nachname, COUNT(*) AS anzahl_schueler
FROM     fahrschueler AS fs,
         fahrlehrer   AS fl
WHERE    fs.fl_kuerzel = fl.kuerzel     -- JOIN-Bedingung
GROUP BY fl.vorname, fl.nachname
ORDER BY anzahl_schueler
Verwende die Datenbank fahrschule.

„Vornamen und Nachnamen der Fahrlehrer, sowie die Fahrstunden, die jede/r Fahrlehrer/in gegeben hat, absteigend sortiert nach der Stundenzahl“

Gehe in drei Schritten vor.

  1. Verwende einen Join, um alle Fahrschüler mit ihren zugehörigen Fahrlehrern zu verbinden.
  2. Verwende GROUP BY, um nach Fahrlehrern zu gruppieren.
  3. Summiere innerhalb jeder Gruppe (also pro Fahrlehrer) die Fahrstunden der Schüler mit SUM

Sortiere abschließend nach der Stundenzahl.

Erwartetes Ergebnis:

SELECT   fl.vorname, fl.nachname, SUM(anz_fahrstunden) AS erteilte_fahrstunden
FROM     fahrschueler AS fs,
         fahrlehrer AS fl
WHERE    fs.fl_kuerzel = fl.kuerzel     -- JOIN-Bedingung
GROUP BY fl.vorname, fl.nachname
ORDER BY erteilte_fahrstunden DESC
Verwende die Datenbank onlineshop.

„Kundenummern, Vornamen und Nachnamen der Kunden, sowie die Anzahl der verschiedenen Bücher, die im jeweiligen Warenkorb liegt, aufsteigend sortiert nach der Bücherzahl“

Gehe in drei Schritten vor.

  1. Verwende einen Join, um alle Kunden mit ihren Warenkorb-Bestellungen zu verbinden.
  2. Verwende GROUP BY, um nach Kundennr, Kunden-Vorname und Kunden-Nachname zu gruppieren.
  3. Zähle innerhalb jeder Gruppe (also pro Kunde) die Anzahl der Bestellungen via COUNT

Sortiere abschließend nach der Stundenzahl.

Erwartetes Ergebnis:

SELECT k.kundennr, k.vorname, k.nachname,
       COUNT(*) AS anzahl_verschiedene_buecher
FROM   kunde AS k, warenkorb AS wk
WHERE  k.kundennr = wk.kundennr
GROUP BY k.kundennr, k.vorname, k.nachname
ORDER BY anzahl_buecher
Verwende die Datenbank onlineshop.

„Kundenummern, Vornamen und Nachnamen der Kunden, sowie die Anzahl aller bestellten Bücher, die im jeweiligen Warenkorb liegt, mit dazugehörigem Gesamtpreis, aufsteigend sortiert nach der Kundennr.“

Gehe in vier Schritten vor.

  1. Verwende zwei Joins, um alle Kunden mit ihren Warenkorb-Bestellungen und Büchern zu verbinden.
  2. Verwende GROUP BY, um nach Kundennr, Kunden-Vorname und Kunden-Nachname zu gruppieren.
  3. Summiere innerhalb jeder Gruppe (also pro Kunde) die Anzahl der Bücher via SUM
  4. Summiere innerhalb jeder Gruppe (also pro Kunde) die Preise der Bücher via SUM. Berechne dazu für jede Bestellung zunächst die neue Spalte „Anzahl * Preis“, und summiere über diese neu berechnete Spalte.

Sortiere abschließend nach der Stundenzahl.

Erwartetes Ergebnis:

Weitere Aufgaben