Порівняння помісячно
Щоб порівнювати місяці, потрібно використати одну з таких віконних функцій:
LAG(value, offset), яка повертає значення з offset кількості рядків перед поточним рядком у звіті.LEAD(value, offset), яка повертає значення з offset кількості рядків після поточного рядка у звіті.
Ваша мета — побудувати звіт, який показує помісячні перегляди для кожної країни. Кілька порад:
- Потрібно згрупувати дати за місяцями. Для цього можна використати функцію
DATE_PART(). - Ви можете обчислити відсоткову зміну за формулою:
(value)/(previous_value) - 1. - Якщо значення offset не вказано у функціях
LAG()абоLEAD(), за замовчуванням використовується 1.
Оскільки таблиця закінчується в середині червня, запит налаштований так, щоб включати дані лише до кінця травня.
Ця вправа є частиною курсу
Звітування в SQL
Інструкції до вправи
- Із
web_dataвиберітьcountry_idі використайте функціюDATE_PART()для створення поляmonth. - Створіть
month_views, яке повертає загальну кількість переглядів у межах місяця. - Створіть
previous_month_views, яке повертає загальну кількість переглядів за попередній місяць для відповідної країни. - Створіть поле
perc_change, яке обчислює відсоткову зміну цього місяця відносно попереднього для відповідної країни, де від'ємне значення означає спад переглядів, а додатне — зростання.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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 ____;