MINT lernen

Übungen: Aggregieren und Gruppieren

Zehn Übungen zu COUNT, SUM, AVG, GROUP BY und HAVING.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung; wenn du hängst, helfen dir die zwei gestuften Tipps.

A1
Was liefert welche Funktion?
AFB I

Drei Wetterstationen speichern die Regenmenge in mm pro Monat. Gib alle richtigen Ergebnisse an.

Tabelle Messung
MessNrStationMonatRegen
1HafenJan40
2HafenFeb35
3HafenMär50
4HeideJan20
5HeideFebNULL
6HeideMär30
7HarzJan60
8HarzFeb45
Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Aggregatfunktionen überspringen NULL: SUM = 280, AVG = 280 : 7 = 40. MIN(Monat) vergleicht Texte alphabetisch — „Feb“ kommt vor „Jan“.
Frage: Was machen Aggregatfunktionen mit NULL?Warum? NULL wird übersprungen — außer bei COUNT(*).
Hilfe: COUNT(*) zählt Zeilen, COUNT(Regen) nur vorhandene Werte; Texte werden alphabetisch verglichen.
A2
Stimmt's? — Gruppieren
AFB I

Fünf Aussagen zu GROUP BY und HAVING. Ordne jede als richtig oder falsch ein.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Im SELECT einer gruppierten Abfrage stehen nur Gruppierungsattribute und Aggregate.
Frage: Wann greift HAVING?Warum? HAVING kennt schon die Gruppen.
Hilfe: WHERE vor, HAVING nach dem Gruppieren; SELECT nur Gruppenattribut + Aggregate.
A3
Lückentext: Aggregatfunktionen
AFB I

Nenne die passende Funktion bzw. Klausel — eine bleibt übrig.

Wort anklicken, dann Lücke anklicken (oder umgekehrt) — mit Tab und Enter geht es genauso. Ein Klick auf eine gefüllte Lücke legt das Wort zurück.

Die Anzahl der Messungen liefert , den Mittelwert , die Gesamtregenmenge . Eine Zeile pro Station erzeugt , und nur Stationen mit mehr als 100 mm insgesamt behält .

ORDER BY sortiert nur — es fasst nichts zusammen und filtert nichts.
Frage: Welche Klausel filtert Gruppen?Warum? Gruppen entstehen erst mit GROUP BY.
Hilfe: Zählen, Mittelwert, Summe; Gruppen bilden; Gruppen filtern.
A4
WHERE oder HAVING?
AFB I

Ordne jede Bedingung der richtigen Klausel zu.

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1WHERE
2HAVING
Steht eine Aggregatfunktion in der Bedingung, gehört sie in HAVING — sonst in WHERE.
Frage: Enthält die Bedingung eine Aggregatfunktion?Warum? Aggregate gibt es erst nach dem Gruppieren.
Hilfe: COUNT, SUM, AVG, MIN, MAX in der Bedingung → HAVING.
A5
Mittelwert mit Lücke
AFB I

Bestimme das Ergebnis von SELECT AVG(Regen) FROM Messung WHERE Station = 'Heide'; in mm.

Überlege selbst und trage das Ergebnis ein — Enter prüft direkt.
Heide hat die Werte 20, NULL, 30. AVG überspringt NULL: (20 + 30) : 2 = 25 — nicht 50 : 3.
Frage: Wie viele Werte zählen?Warum? Der fehlende Februarwert wird übersprungen.
Hilfe: Summe der vorhandenen Werte durch deren Anzahl.
A6
Auswertungsreihenfolge
AFB II

Beschreibe, in welcher Reihenfolge die Datenbank eine Abfrage mit allen Klauseln auswertet.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1FROM — Tabelle(n) bereitstellen
2WHERE — Zeilen filtern
3GROUP BY — Gruppen bilden
4HAVING — Gruppen filtern
5SELECT und ORDER BY — Spalten ausgeben und sortieren
Weil SELECT erst nach GROUP BY ausgewertet wird, kann man dort Aggregate ausgeben — und weil WHERE vorher kommt, kann WHERE sie nicht kennen.
Frage: Kann WHERE schon Summen kennen?Warum? Gruppen entstehen erst in der Mitte.
Hilfe: Tabelle → Zeilen → Gruppen → Gruppenfilter → Ausgabe.
A7
Gruppen durchrechnen
AFB II

Abfrage: SELECT Station, SUM(Regen), COUNT(*) FROM Messung GROUP BY Station; Ermittle die Werte.

Löse die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. SUM(Regen) für Hafen mm
  2. SUM(Regen) für Heide mm
  3. COUNT(*) für Heide
  4. Wie viele Zeilen blieben mit HAVING SUM(Regen) > 100? Zeilen
COUNT(*) zählt auch die Zeile mit NULL. Mit HAVING bleiben Hafen (125) und Harz (105).
Frage: Welche Zeilen gehören zu Hafen?Warum? Eine Gruppe = alle Zeilen mit demselben Stationsnamen.
Hilfe: Hafen: 40 + 35 + 50; Heide: 20 + 30 (NULL übersprungen); Harz: 60 + 45.
A8
Frage und Abfrage
AFB II

Erstelle zu jeder Frage die passende Abfrage.

Frage: Steckt „je …“ in der Frage?Warum? „je Station“ bedeutet eine Ergebniszeile pro Station.
Hilfe: insgesamt → ohne GROUP BY; je → GROUP BY; Bedingung an Aggregat → HAVING.
A9
Fehlersuche: Durchschnitt je Station
AFB III

Gesucht: mittlere Regenmenge je Station, nur für Stationen mit mindestens drei Messungen, absteigend sortiert. Überprüfe die Vorschläge — drei sind falsch.

In diesem Text stecken Fehler. Klicke genau die falschen Zeilen an — die richtigen musst du stehen lassen.
Heide hat drei Zeilen (eine davon NULL) und zählt deshalb bei COUNT(*) mit; Harz hat nur zwei Messungen.
Frage: Wo stehen Aggregatbedingungen?Warum? Prüfe Klauselreihenfolge und SELECT-Regel.
Hilfe: GROUP BY vor HAVING; Aggregatbedingung in HAVING; SELECT nur Station und Aggregate.
A10
Wie viele Ergebniszeilen?
AFB III

Schätze ab, wie viele Zeilen jede Abfrage über der Tabelle Messung liefert.

Wähle für jede Zeile eine Stufe: 1 = 0 Zeilen, 2 = 1 Zeile, 3 = 2 Zeilen, 4 = 3 Zeilen, 5 = 8 Zeilen. Mit der Tastatur: Tab zur Zeile, ←/→ zwischen den Stufen, Enter setzt.
1 = 0 Zeilen5 = 8 Zeilen
SELECT AVG(Regen) FROM Messung;
SELECT Monat, COUNT(*) FROM Messung GROUP BY Monat;
SELECT Station FROM Messung GROUP BY Station HAVING MIN(Regen) > 40;
SELECT * FROM Messung;
SELECT Station FROM Messung GROUP BY Station HAVING COUNT(*) > 3;
GROUP BY Monat: Jan, Feb, Mär → 3 Zeilen. MIN > 40 schafft nur Harz (45).
Frage: Wie viele verschiedene Werte hat das Gruppierungsattribut?Warum? So viele Gruppen, so viele Zeilen — vor HAVING.
Hilfe: Ohne GROUP BY: 1 Zeile; mit GROUP BY: Anzahl Gruppen minus die, die HAVING streicht.