capypad
0 Tage Serie
sql / expert
Snippet

Bedingte Aggregation für Data Pivoting

Bedingte Aggregation verwendet CASE-Anweisungen innerhalb von Aggregatfunktionen, um Daten von Zeilen in Spalten umzuwandeln (Pivoting). Diese Technik ist hocheffizient für die Erstellung von Berichten, die mehrere Kennzahlen aus einem einzigen Tabellendurchlauf erfordern.

snippet.sql
sql
1
2
3
4
5
6
SELECT
EXTRACT(YEAR FROM order_date) as year,
SUM(CASE WHEN status = 'shipped' THEN amount ELSE 0 END) as revenue_shipped,
SUM(CASE WHEN status = 'returned' THEN amount ELSE 0 END) as loss_returned
FROM orders
GROUP BY EXTRACT(YEAR FROM order_date);
Erklärung
1
EXTRACT(YEAR FROM order_date)
Extrahiert die Jahreskomponente aus einem Datums- oder Zeitstempelfeld.
2
SUM(CASE WHEN status = 'shipped' THEN amount ELSE 0 END)
Addiert den Betrag nur dann zur Summe, wenn die spezifische Bedingung erfüllt ist, was effektiv innerhalb der Summe filtert.
3
GROUP BY EXTRACT(YEAR FROM order_date)
Aggregiert die Ergebnisse pro Jahr.