SQLLab
Практика· 7 мин· 20 XP

merge → JOIN: пользователи и их покупки

Задание

pandas:

purchases = events[events['event_type']=='purchase']
result = purchases.merge(users, left_on='user_id', right_on='id') \
                  .merge(products, left_on='product_id', right_on='id')

Контекст: Вы дата-аналитик, мигрирующий отчётность с pandas на SQL. Служба поддержки просит детальную выгрузку всех покупок: кто купил, что купил и откуда — нужно для персонального follow-up с самыми крупными клиентами. Здесь два JOIN: с users, чтобы узнать пользователя и страну, и с products, чтобы узнать название и категорию товара.

Техническое задание: Напишите SQL-запрос к таблицам events, users и products.

Свяжите events с users по user_id = id, и с products по product_id = id. Оставьте только строки с event_type = 'purchase'.

Выведите:

  • username — имя пользователя
  • country — страна
  • plan — тарифный план
  • product_name — название товара (name из products)
  • category — категория товара
  • amount — сумма покупки

Отсортируйте по amount по убыванию — самые крупные покупки сверху, а при равной сумме — по username по возрастанию (чтобы порядок был однозначным).

Результат выполнения SQL-запроса
История твоих попыток решения
Показать эталонное решение задачи
ER-диаграмма таблиц базы данных
Ожидаемые колонки в правильном ответе
Появится после 3 неудачных попыток
Анализ плана выполнения запроса PostgreSQL

Результаты появятся здесь после выполнения запроса.