Confronto mese su mese
Per confrontare i mesi, devi usare una delle seguenti funzioni finestra:
LAG(value, offset), che restituisce un valore di un numero di righe offset precedenti alla riga corrente nel report.LEAD(value, offset), che restituisce un valore di un numero di righe offset successive alla riga corrente nel report.
Il tuo obiettivo è creare un report che mostri, per ciascun paese, le visualizzazioni mese su mese. Qualche suggerimento:
- Dovrai raggruppare le date per mese. Per farlo, puoi usare la funzione
DATE_PART(). - Puoi calcolare la variazione percentuale con la seguente formula:
(value)/(previous_value) - 1. - Se non specifichi un valore di offset nelle funzioni
LAG()oLEAD(), il valore predefinito è 1.
Poiché la tabella si interrompe a metà giugno, la query è configurata per includere solo i dati fino alla fine di maggio.
Questo esercizio fa parte del corso
Reportistica in SQL
Istruzioni dell'esercizio
- Da
web_data, estraicountry_ide usa la funzioneDATE_PART()per crearemonth. - Crea
month_viewsche calcoli il totale delle visualizzazioni all'interno del mese. - Crea
previous_month_viewsche recuperi il totale delle visualizzazioni del mese scorso per il paese indicato. - Crea il campo
perc_changeche calcoli la variazione percentuale di questo mese rispetto al mese scorso per il paese indicato, dove un valore negativo rappresenta una diminuzione delle visualizzazioni e un valore positivo rappresenta una crescita.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 ____;