Skip to Content
HDatenbankenAggregatsfunktionen

Erklärvideo

Aggregatsfunktionen in SQL

Aggregatsfunktionen fassen Daten zusammen, indem sie mehrere Zeilen zu einem einzelnen Wert verdichten. Sie sind die Grundlage für Statistiken und Datenanalyse in SQL.

Stellen wir uns folgende Tabelle mit Verkaufsdaten vor:

sales

product_idproduct_namecategorypriceunits_soldsale_date
101LaptopElectronics120052023-06-01
102SmartphoneElectronics800102023-06-01
103T-ShirtClothing25502023-06-02
104JeansClothing60202023-06-02
105HeadphonesElectronics100152023-06-03
106TabletElectronics35082023-06-03
107DressClothing80122023-06-04
108LaptopElectronics120032023-06-04

Zählt die Anzahl der Datensätze. COUNT(*) zählt alle Zeilen, COUNT(column) zählt Zeilen ohne NULL-Werte, und COUNT(DISTINCT column) zählt eindeutige Werte.

count-example

Loading...
Datenbank wird geladen...

Wichtige Hinweise zu Aggregatsfunktionen

1. Vorsicht beim Mischen von aggregierten und nicht-aggregierten Spalten

Folgendes Query ist problematisch, da product_name eine normale Spalte ist, während AVG(price) aggregiert wird. Welches product_name soll angezeigt werden, wenn der Durchschnitt aus mehreren Zeilen berechnet wird? Der SQL-Standard verbietet solche logisch widersprüchliche Queries eigentlich, aber viele Server füllen einfach den letzten oder irgendeinen Wert ein. Also Achtung beim Vermischen von aggregierten und nicht-aggregierten Spalten - da passieren häufig Logikfehler!

incorrect-example

Loading...
Datenbank wird geladen...

2. Korrekte Verwendung mit GROUP BY

Es ist aber nicht unmöglich aggregierte und nicht-aggregierte Spalten zu mischen, wie in diesem Beispiel. Bei der Verwendung von GROUP BY hat jede Gruppe genau einen Wert für die nicht-aggregierte Spalte category, daher ist dies korrekt.

correct-groupby

Loading...
Datenbank wird geladen...

3. GROUP BY kann mehrere Spalten haben

Dies gruppiert die Daten nach Kategorie UND Datum.

multi-column-groupby

Loading...
Datenbank wird geladen...
Last updated on