Månadsvis jämförelse
För att jämföra månader behöver du använda någon av följande fönsterfunktioner:
LAG(value, offset), som returnerar ett värde från offset antal rader före den aktuella raden i rapporten.LEAD(value, offset), som returnerar ett värde från offset antal rader efter den aktuella raden i rapporten.
Målet är att bygga en rapport som visar varje lands månadsvis visningar. Några tips:
- Du behöver dela in datum i månader. Det gör du med funktionen
DATE_PART(). - Du kan beräkna den procentuella förändringen med följande formel:
(value)/(previous_value) - 1. - Om inget offset-värde anges i
LAG()ellerLEAD()används standardvärdet 1.
Eftersom tabellen slutar mitt i juni är frågan konfigurerad att bara inkludera data till och med slutet av maj.
Den här övningen är en del av kursen
Rapportering i SQL
Övningsinstruktioner
- Hämta
country_idfrånweb_dataoch använd enDATE_PART()-funktion för att skapamonth. - Skapa
month_viewssom summerar det totala antalet visningar inom månaden. - Skapa
previous_month_viewssom hämtar det totala antalet visningar från föregående månad för respektive land. - Skapa fältet
perc_changesom beräknar den procentuella förändringen för den aktuella månaden jämfört med föregående månad för respektive land, där ett negativt värde innebär ett tapp i visningar och ett positivt värde innebär tillväxt.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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 ____;