Porównanie miesiąc do miesiąca
Aby porównać miesiące, użyj jednej z poniższych funkcji okna:
LAG(value, offset)– zwraca wartość z wiersza znajdującego się o offset pozycji przed bieżącym wierszem w raporcie.LEAD(value, offset)– zwraca wartość z wiersza znajdującego się o offset pozycji po bieżącym wierszu w raporcie.
Celem jest zbudowanie raportu pokazującego liczbę odsłon w ujęciu miesiąc do miesiąca dla każdego kraju. Kilka wskazówek:
- Daty należy pogrupować według miesięcy – do tego służy funkcja
DATE_PART(). - Zmianę procentową możesz obliczyć według wzoru:
(value)/(previous_value) - 1. - Jeśli w funkcji
LAG()lubLEAD()nie podasz wartości offset, domyślnie przyjmie ona wartość 1.
Ponieważ tabela zawiera dane tylko do połowy czerwca, zapytanie jest skonfigurowane tak, aby uwzględniać wyłącznie dane do końca maja.
To ćwiczenie jest częścią kursu
Raportowanie w SQL
Instrukcje do ćwiczenia
- Z tabeli
web_datapobierzcountry_idi użyj funkcjiDATE_PART(), aby utworzyć polemonth. - Utwórz pole
month_viewszawierające łączną liczbę odsłon w danym miesiącu. - Utwórz pole
previous_month_viewszawierające łączną liczbę odsłon z poprzedniego miesiąca dla danego kraju. - Utwórz pole
perc_change, które oblicza zmianę procentową liczby odsłon w bieżącym miesiącu względem poprzedniego dla danego kraju – wartość ujemna oznacza spadek odsłon, a dodatnia – wzrost.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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 ____;