Сводная таблица доходов пользователей по месяцам
Далее Ева сообщает вам, что топ-менеджеры предпочитают широкие таблицы длинным — их удобнее просматривать. Она подготовила образец отчёта о доходах пользователей по месяцам, в котором отражены доходы первых 5 пользователей за период с июня по август 2018 года. Руководство попросило её преобразовать таблицу в сводную по месяцам. Ева передаёт эту задачу вам.
Преобразуйте запрос с доходами пользователей по месяцам в сводную таблицу, где идентификатор пользователя представляет строки, а каждый месяц с июня по август 2018 года — отдельный столбец.
Это упражнение является частью курса
Анализ бизнес-данных с помощью SQL
Инструкции к упражнению
- Активируйте функцию
CROSSTAB()из расширенияtablefunc. - Объявите столбцы новой сводной таблицы: идентификатор пользователя и первые три месяца работы сервиса.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Import tablefunc
CREATE EXTENSION IF NOT EXISTS ___;
SELECT * FROM CROSSTAB($$
SELECT
user_id,
DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
SUM(meal_price * order_quantity) :: FLOAT AS revenue
FROM meals
JOIN orders ON meals.meal_id = orders.meal_id
WHERE user_id IN (0, 1, 2, 3, 4)
AND order_date < '2018-09-01'
GROUP BY user_id, delivr_month
ORDER BY user_id, delivr_month;
$$)
-- Select user ID and the months from June to August 2018
AS ct (___ INT,
___ FLOAT,
___ FLOAT,
___ FLOAT)
ORDER BY user_id ASC;