SQL запрос
Этот SQL-запрос анализирует ежемесячный доход пользователей игры, определяет новых платных пользователей, а также оценивает динамику дохода. Он вычисляет метрики, такие как расширение или сокращение дохода, потерю пользователей и их возвращение после отказа. Это позволяет глубже понять поведение пользователей и динамику дохода.
В SQL-запросе используются следующие инструменты и функции:
CTE (Common Table Expressions) - для структурирования запроса на логические части (monthly_revenue, revenue_lag_lead_month, revenue_metrics).
Агрегационные функции:
SUM() - для вычисления общего дохода пользователя за месяц.
COUNT(DISTINCT user_id) - для подсчета уникальных платных пользователей.
Оконные функции:
LAG() и LEAD() - для получения значений дохода из предыдущего и следующего месяцев для сравнения.
PARTITION BY - для разбивки данных по каждому пользователю, чтобы оценивать данные отдельно для каждого.
Условные выражения CASE - для вычисления различных типов дохода, таких как новый доход, расширение, сокращение, возвращение после потери пользователей и т.д.
Функция date_trunc() - для объединения даты до уровня месяца ('month'), что упрощает группировку платежей по месяцам.
В SQL-запросе используются следующие инструменты и функции:
CTE (Common Table Expressions) - для структурирования запроса на логические части (monthly_revenue, revenue_lag_lead_month, revenue_metrics).
Агрегационные функции:
SUM() - для вычисления общего дохода пользователя за месяц.
COUNT(DISTINCT user_id) - для подсчета уникальных платных пользователей.
Оконные функции:
LAG() и LEAD() - для получения значений дохода из предыдущего и следующего месяцев для сравнения.
PARTITION BY - для разбивки данных по каждому пользователю, чтобы оценивать данные отдельно для каждого.
Условные выражения CASE - для вычисления различных типов дохода, таких как новый доход, расширение, сокращение, возвращение после потери пользователей и т.д.
Функция date_trunc() - для объединения даты до уровня месяца ('month'), что упрощает группировку платежей по месяцам.