sql / expert
Snippet
Bedingte Populationsstatistiken über FILTER-Klauseln
Die FILTER-Klausel ist eine ANSI-Standard-Syntax für bedingte Aggregation. Im Gegensatz zur Verwendung von CASE-Ausdrücken innerhalb von Aggregatfunktionen bietet FILTER eine klarere Absicht und potenziell bessere Optimierungshinweise für den Query-Planner, indem das Selektionsprädikat explizit von der Aggregationslogik getrennt wird.
snippet.sql
1
2
3
4
5
6
SELECTregion,COUNT(*) FILTER (WHERE status = 'active') AS active_count,SUM(revenue) FILTER (WHERE date > '2025-01-01') AS ytd_revenueFROM sales_dataGROUP BY region;
Erklärung
1
COUNT(*) FILTER (WHERE status = 'active')
Aggregiert nur die Zeilen, die das angegebene Prädikat innerhalb der Klammern erfüllen.
2
GROUP BY region
Partitioniert die Ergebnismenge für eine lokalisierte bedingte Analyse.