Maxim Mironjuk
-
Juli 14, 2025
Bedingte Aggregation gehört zu den häufigsten Anforderungen in Reporting-Queries: Wie viele Bestellungen sind storniert, wie viele abgeschlossen, wie viele noch offen, alles in einer einzigen Zeile pro Gruppe. Der klassische Weg dorthin führt über COUNT in Kombination mit einem CASE-WHEN-Ausdruck, der je nach Bedingung entweder einen Wert oder NULL zurückgibt. Der SQL-Standard bietet seit einiger Zeit eine deutlich klarere Alternative: die FILTER-Klausel, direkt an die Aggregatfunktion angehängt. Dieser Artikel zeigt, wie FILTER funktioniert, warum es CASE-WHEN in vielen Fällen an Lesbarkeit übertrifft, wie es sich mit Window Functions für mehrere parallele Kennzahlen kombinieren lässt und wo die Grenzen der Datenbank-Verfügbarkeit liegen.