НачатьНачать бесплатно

Сравнение по месяцам

Для сравнения данных по месяцам используйте одну из следующих оконных функций:

  • 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 ____;
Редактировать и запускать код