Aggregatfunktionen in SQL

Aggregatfunktionen führen Berechnungen über verschiedene Werte durch und geben einen einzelnen Wert zurück. An sich sind die Funktionen identisch zu Excel-Befehlen. Die 5 wichtigsten SQL-Aggregatfunktionen sind:

  • COUNT
  • SUM
  • MIN
  • MAX
  • AVG

Die allgemeine SQL-Syntax lautet:

SELECT Functiontype(column_name) FROM table;

Aggregatfunktion: COUNT

COUNT erlaubt die Zählung der Datensätze in einer bestimmten Datentabelle. Dabei spielt es keine Rolle, ob die Inhalte der gezählten Spalte Texte, numerische Werte oder Datumswerte sind. Die allgemeine Syntax lautet:

SELECT COUNT(column_name) FROM table;

Um zum Beispiel die Anzahl der Schauspieler in unserer Tabelle zu ermitteln, geben wir ein:

SELECT COUNT(last_name) FROM actor;

Als Ergebnis werden 200 Datensätze gezählt.

In Kombination mit DISTINCT kann die Anzahl der individuellen Datensätze einer Tabelle ausgelesen werden. Um zum Beispiel die Anzahl unterschiedlicher Nachnamen herauszufinden, gibst du die folgende Anweisung ein:

SELECT COUNT(DISTINCT last_name) FROM actor;

Als Ergebnis werden 121 verschiedene Nachnamen ausgegeben.

Als Spaltenname wird standardmäßig „Count()“ ausgeben, zum besseren Verständnis kann die Spalte auch hier mit „AS“ individuell umbenannt werden:

SELECT COUNT(last_name) AS count_of_actor FROM actor;

Aggregatfunktion: SUM

Die Funktion SUM summiert die Einträge einer Spalte. Hierbei muss es sich um numerische Werte handeln. Die allgemeine SQL-Syntax lautet:

SELECT SUM(column_name) FROM table;

Wenn der Inhalt eines Datensatzes leer ist wird dieser mit 0 hinzugezählt.

Beispiel: Summieren wir z.B. in der Tabelle „film“ unserer „sakila“ Datenbank die Länge aller Filme:

SELECT SUM(length) FROM film;

Aggregatfunktion: MIN & MAX

Die Aggregatfunktionen MIN und MAX liefern den kleinsten bzw. höchsten Wert einer bestimmten Spalte. Analog zu COUNT können diese Funktionen auch nur für numerische Werte genutzt werden. MIN gibt z.B. die kleinste Zahl, das frühste Datum und den Text der am nächsten an „A“ ist, aus. Die allgemeine SQL-Syntax lautet:

SELECT MIN(column_name) FROM table;

Die Abfrage

SELECT MAX(LENGTH),MIN(LENGTH) FROM film

liefert den Minimum und Maximum Wert der Spalte „length“ (Filmdauer). Als Ergebnis werden 46 und 185 ausgeben:

Aggregatfunktion: AVG

Die Aggregatfunktionen AVG kalkuliert den Durchschnitt einer selektierten Gruppe von numerischen Werten. Die allgemeine Syntax lautet:

SELECT AVG(column_name) FROM table;

Beispiel: Lassen wir die durchschnittliche Spielfilmlänge ermitteln:

SELECT AVG(LENGTH) FROM film;

Beachtet werden muss, dass Datensätze mit einer leeren Spielfilmlänge ignoriert werden. In manchen Fällen sollen aber leere Werte als 0 berücksichtigt werden, dafür müssten vorher die leeren Sätze in 0 umgewandelt werden.

Möchte man den zugehörigen Datensatz zu dem Ergebnis unserer Aggregatfunktion ausgeben, lässt sich das mit einer Unterabfrage (SUBQUERY) erreichen.

Weitere Tipps zu Aggregatfunktionen in meinen Artikel:

(Visited 26.677 times, 1 visits today)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert