capypad
0 Tage Serie
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
sql
1
2
3
4
5
6
SELECT
region,
COUNT(*) FILTER (WHERE status = 'active') AS active_count,
SUM(revenue) FILTER (WHERE date > '2025-01-01') AS ytd_revenue
FROM sales_data
GROUP 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.