Informatik

Aggregatfunktionen

Eine Aggregatfunktion fasst viele Werte zu einem einzigen zusammen.

Funktion Ergebnis
COUNT(*) Anzahl der Zeilen
COUNT(spalte) Anzahl der Zeilen mit einem Wert in dieser Spalte
COUNT(DISTINCT spalte) Anzahl der verschiedenen Werte
SUM(spalte) Summe
AVG(spalte) Mittelwert
MIN(spalte) / MAX(spalte) kleinster / größter Wert

Eine Abfrage mit Aggregatfunktion liefert eine einzige Zeile – egal wie viele Zeilen die Tabelle hat.

Zählen ist nicht gleich zählen

a) Führe die Abfrage aus. Welche drei Zahlen kommen heraus?

b) Erkläre, warum die dritte kleiner ist als die ersten beiden.

c) Wie viele verschiedene Instrumente werden in mitgliedschaft genannt, und wie viele Einträge gibt es insgesamt?

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Aggregatfunktionen mit WHERE

WHERE wirkt vor der Aggregation – es entscheidet, welche Zeilen überhaupt eingerechnet werden.

Aggregatfunktionen mit Verbund

Ein häufiger Denkfehler

Was liefert diese Abfrage – und ergibt das Sinn?

SELECT name, MAX(zuschauer) FROM auftritt;
Tipp

Die Aggregatfunktion liefert eine Zeile. Woher soll der zugehörige name kommen, wenn es 46 Zeilen gab?

Auflösung

Die Abfrage ist in dieser Datenbank ohnehin fehlerhaft, weil auftritt gar keine Spalte name hat. Aber auch mit einer vorhandenen Spalte wäre sie problematisch:

MAX(zuschauer) fasst alle 46 Zeilen zu einer zusammen. Ein einzelner Spaltenwert daneben ist dann nicht mehr definiert – zu welcher der 46 Zeilen sollte er gehören?

Manche Datenbanksysteme lehnen so etwas ab, andere liefern irgendeinen Wert. SQLite gehört zur zweiten Sorte, und das ist tückisch: Man bekommt ein Ergebnis, das plausibel aussieht und falsch sein kann.

Der saubere Weg führt über eine Unterabfrage – die lernst du in Lektion 4 kennen.

Faustregel: Sobald eine Aggregatfunktion in der SELECT-Liste steht, darf dort keine gewöhnliche Spalte mehr stehen – es sei denn, sie steht auch im GROUP BY. Was das heißt, klärt die nächste Lektion.

Aufgaben

a) Wie viele Personen sind in der Datenbank erfasst?

b) Wie viele Stunden Musik gibt es insgesamt? Rechne aus dauer_min in Stunden um und runde auf eine Nachkommastelle.

c) Wie hoch war der Gesamtumsatz aus Tickets, und wie viele Tickets wurden verkauft?

d) Wie viele verschiedene Bands sind am 18. Juli 2026 aufgetreten?

Tipp: zu b)

Erst summieren, dann teilen – und daran denken, dass 60 eine ganze Zahl ist.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Selbsttest

Aggregatfunktionen

Teilbare URL erstellen

Abschnitte auswählen