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
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.