sql / expert
Snippet
Bedingte Aggregation für dynamische Berichte
Bedingte Aggregation verwendet CASE-Anweisungen innerhalb von Aggregatfunktionen, um Daten zu pivotieren oder Multi-Kategorie-Zählungen in einem einzigen Durchlauf durchzuführen, was die Performance gegenüber mehreren Unterabfragen deutlich steigert.
snippet.sql
1
2
3
4
5
6
7
SELECTdepartment_id,COUNT(CASE WHEN salary < 50000 THEN 1 END) AS low_tier,COUNT(CASE WHEN salary BETWEEN 50000 AND 100000 THEN 1 END) AS mid_tier,COUNT(CASE WHEN salary > 100000 THEN 1 END) AS high_tierFROM employeesGROUP BY department_id;
Erklärung
1
COUNT(CASE WHEN salary < 50000 THEN 1 END)
Der CASE-Ausdruck gibt 1 für bestimmte Zeilen zurück, die COUNT dann zählt. NULL-Werte werden ignoriert.
2
GROUP BY department_id
Organisiert die resultierenden Kennzahlen nach der angegebenen Dimension.