Maand-op-maandvergelijking
Om maanden te vergelijken, moet je een van de volgende windowfuncties gebruiken:
LAG(value, offset), waarmee je een waarde uit een offset-aantal rijen vóór de huidige rij in het rapport ophaalt.LEAD(value, offset), waarmee je een waarde uit een offset-aantal rijen ná de huidige rij in het rapport ophaalt.
Je doel is een rapport te bouwen dat per land de maand-op-maandweergaven laat zien. Enkele tips:
- Je moet datums in maanden groeperen. Gebruik hiervoor de functie
DATE_PART(). - Je kunt de procentuele verandering berekenen met de volgende formule:
(value)/(previous_value) - 1. - Als er geen offset-waarde is meegegeven aan de functies
LAG()ofLEAD(), is de standaardwaarde 1.
Omdat de tabel halverwege juni stopt, is de query zo opgezet dat alleen data tot en met eind mei wordt meegenomen.
Deze oefening maakt deel uit van de cursus
Rapporteren in SQL
Oefeninstructies
- Haal uit
web_datadecountry_idop en gebruik eenDATE_PART()-functie ommonthte maken. - Maak
month_viewsdat het totale aantal weergaven binnen de maand ophaalt. - Maak
previous_month_viewsdat het totale aantal weergaven van vorige maand voor het betreffende land ophaalt. - Maak het veld
perc_changedat de procentuele verandering van deze maand ten opzichte van vorige maand voor het betreffende land berekent, waarbij een negatieve waarde een daling in weergaven aangeeft en een positieve waarde groei.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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 ____;