Site x5

Aggregat Funktionen

Der Begriff "Aggregieren" bedeutet im Allgemeinen das Zusammenfassen oder Zusammenführen von Daten, Informationen oder Objekten zu einer größeren Einheit. In verschiedenen Bereichen hat Aggregation spezifische Bedeutungen.

Anwendungsbereiche

1. Informatik und Programmierung:

2. Statistik:

3. Netzwerktechnik:

Anwendung in SQL

Aggregatfunktionen in SQL fassen mehrere Zeilen einer Tabelle zu einem Wert zusammen. Sie helfen, Daten zusammenzufassen oder zu analysieren.

Die wichtigsten 5 Aggregatfunktionen

Beispiele

Angenommen, wir haben folgende Tabelle tabelle

+-------+----------+-----------+---------+--------+
| Kunde | Vorname  | Nachname  | Zahlung | Betrag |
+-------+----------+-----------+---------+--------+
|   591 | KENT     | ARSENAULT |   15821 |  11.99 |
|   204 | ROSEMARY | SCHMIDT   |    5550 |  11.99 |
|   362 | NICHOLAS | BARFIELD  |    9803 |  11.99 |
|   237 | TANYA    | GILBERT   |    6409 |  11.99 |
|   196 | ALMA     | AUSTIN    |    5281 |  11.99 |
|    13 | KAREN    | JACKSON   |     342 |  11.99 |
|   195 | VANESSA  | SIMS      |    5280 |  11.99 |
|   116 | VICTORIA | GIBSON    |    3146 |  11.99 |
|   592 | TERRANCE | ROUSH     |   15850 |  11.99 |
|   305 | RICHARD  | MCCRARY   |    8272 |  11.99 |
+-------+----------+-----------+---------+--------+

Wenn wir wissen wollen, wie hoch der Betrag ist, wenn wir alle Einzelbeträge zusammenzählen, machen wir folgendes:

SELECT SUM(Betrag) FROM tabelle;
+-------------+
| SUM(Betrag) |
+-------------+
|      119.90 |
+-------------+
1 row in set (0.042 sec)

Wie wir sehen können, ist der Spaltenname SUM(Betrag) ziemlich hässlich, deswegen benennen wir die Spalte einfach um:

SELECT SUM(Betrag) AS Summe FROM tabelle;
+----------+
| Summe    |
+----------+
|   119.90 |
+----------+
1 row in set (0.044 sec)

Die Aggregatfunktion hat mehrere Zahlen zu einer neuen Zahl aggregiert und die Ergebnistabelle besteht nur noch aus einer Zeile.

Achtung

Nicht-aggregierte Spalten können ohne `GROUP BY` Klausel (dazu später mehr) nicht mit aggregierten Spalten gemischt werden
SELECT Kunde, SUM(Betrag) AS Summe FROM tabelle;
+-------+--------+
| Kunde | Summe  |
+-------+--------+
|   237 | 119.90 |
+-------+--------+
1 row in set (0.043 sec)

Das ergibt keinen Sinn.

Mehrere Funktionen verwenden

Wir können mehrere Aggregatfunktionen gleichzeitig verwenden

SELECT 
    MIN(Betrag),
    MAX(Betrag),
    AVG(Betrag),
    SUM(Betrag),
    COUNT(*)
FROM tabelle;
+-------------+-------------+-------------+-------------+----------+
| MIN(Betrag) | MAX(Betrag) | AVG(Betrag) | SUM(Betrag) | COUNT(*) |
+-------------+-------------+-------------+-------------+----------+
|        0.00 |       11.99 |    4.201356 |    67406.56 |    16044 |
+-------------+-------------+-------------+-------------+----------+
1 row in set (0.056 sec)