Monat-zu-Monat-Vergleich
Um Monate zu vergleichen, musst du eine der folgenden Window-Funktionen verwenden:
LAG(value, offset), gibt einen Wert aus, der um eine bestimmte offset-Anzahl vor der aktuellen Zeile im Bericht liegt.LEAD(value, offset), gibt einen Wert aus, der um eine bestimmte offset-Anzahl nach der aktuellen Zeile im Bericht liegt.
Dein Ziel ist es, einen Bericht zu erstellen, der die monatlichen Views pro Land darstellt. Ein paar Tipps:
- Du musst Daten monatsweise bündeln. Dafür kannst du die Funktion
DATE_PART()verwenden. - Die prozentuale Veränderung kannst du mit folgender Formel berechnen:
(value)/(previous_value) - 1. - Wenn in den Funktionen
LAG()oderLEAD()kein offset-Wert angegeben ist, ist der Standardwert 1.
Da die Tabelle Mitte Juni endet, ist die Abfrage so eingerichtet, dass sie nur Daten bis Ende Mai berücksichtigt.
Diese Übung ist Teil des Kurses
Reporting in SQL
Anleitung zur Übung
- Ziehe aus
web_datadiecountry_idund verwende eineDATE_PART()-Funktion, ummonthzu erstellen. - Erstelle
month_views, das die gesamten Views innerhalb des Monats ermittelt. - Erstelle
previous_month_views, das die gesamten Views des Vormonats für das jeweilige Land ermittelt. - Erstelle das Feld
perc_change, das die prozentuale Veränderung dieses Monats im Vergleich zum Vormonat für das jeweilige Land berechnet; ein negativer Wert bedeutet einen Rückgang der Views, ein positiver Wert steht für Wachstum.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;