Porovnání měsíc po měsíci
Pro porovnání jednotlivých měsíců je potřeba použít jednu z těchto okenních funkcí:
LAG(value, offset)– vrátí hodnotu z řádku, který je o offset pozic před aktuálním řádkem v sestavě.LEAD(value, offset)– vrátí hodnotu z řádku, který je o offset pozic za aktuálním řádkem v sestavě.
Tvým cílem je sestavit přehled zobrazující meziroční vývoj počtu zobrazení pro každou zemi. Pár tipů:
- Data budeš muset rozdělovat do měsíců – k tomu slouží funkce
DATE_PART(). - Procentuální změnu lze vypočítat podle tohoto vzorce:
(value)/(previous_value) - 1. - Pokud v
LAG()neboLEAD()nezadáš hodnotu offset, výchozí hodnota bude 1.
Protože tabulka končí uprostřed června, je dotaz nastaven tak, aby zahrnoval pouze data do konce května.
Toto cvičení je součástí kurzu
Reporting in SQL
Pokyny k cvičení
- Z tabulky
web_datavybercountry_ida pomocí funkceDATE_PART()vytvoř polemonth. - Vytvoř pole
month_views, které bude obsahovat celkový počet zobrazení za daný měsíc. - Vytvoř pole
previous_month_views, které bude obsahovat celkový počet zobrazení za předchozí měsíc pro danou zemi. - Vytvoř pole
perc_change, které vypočítá procentuální změnu aktuálního měsíce oproti předchozímu pro danou zemi – záporná hodnota představuje pokles zobrazení, kladná hodnota růst.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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 ____;