MWCodebymw.de ↗
SQL

Auswerten mit GROUP BY, COUNT und HAVING – Daten gruppieren und filtern

Wie viele Einträge pro Kategorie? Welche Kunden haben mehr als drei Bestellungen? Genau dafür sind GROUP BY und HAVING da. Ich zeige dir an einem kleinen Beispiel, wie du aus rohen Zeilen eine echte Auswertung machst.

Sobald du in einer Tabelle etwas zählen oder summieren willst, brauchst du GROUP BY. Statt jede Zeile einzeln anzusehen, fasst SQL sie in Gruppen zusammen und rechnet pro Gruppe. Ich erkläre es an einer Snippet-Tabelle – passend, weil ich sowas gerade selbst für eine Statistik-Auswertung nutze.

Zählen pro Kategorie

SELECT language, COUNT(*) AS anzahl
FROM snippets
GROUP BY language
ORDER BY anzahl DESC;

GROUP BY language bildet je Sprache eine Gruppe, COUNT(*) zählt die Zeilen darin. ORDER BY anzahl DESC sortiert die größte Kategorie nach oben. Ergebnis: eine saubere „Sprache → Anzahl"-Liste.

Auch Summen gehen so

SELECT language, SUM(views) AS aufrufe
FROM snippets
GROUP BY language
ORDER BY aufrufe DESC;

Statt zu zählen, summierst du hier die Aufrufe pro Sprache – so siehst du, welche Kategorie am meisten gelesen wird.

Gruppen filtern: HAVING statt WHERE

Ein häufiger Stolperstein: WHERE filtert einzelne Zeilen, bevor gruppiert wird. Willst du aber nach dem Ergebnis der Gruppe filtern (z. B. „nur Sprachen mit mehr als 5 Snippets"), brauchst du HAVING:

SELECT language, COUNT(*) AS anzahl
FROM snippets
GROUP BY language
HAVING COUNT(*) > 5
ORDER BY anzahl DESC;

Merksatz: WHERE filtert Zeilen, HAVING filtert Gruppen. Beides lässt sich kombinieren – erst WHERE (z. B. nur veröffentlichte), dann GROUP BY, dann HAVING.

Genau solche Auswertungen baue ich regelmäßig in Admin-Bereiche ein, damit man auf einen Blick sieht, was läuft. Brauchst du sowas für dein Projekt? Schreib mir über bymw.de.

Quellen

#GROUP BY#COUNT#HAVING#Aggregat#Auswertung

Du brauchst mehr als ein Snippet?

Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.

Projekt anfragen →