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
1
2
3
4
5
6
SELECTEXTRACT(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_returnedFROM ordersGROUP 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.