Learning Platform
Урок 15.01 · 12 мин
Продвинутый
CapstoneBusiness analyticsData exploration

Двенадцать модулей за спиной. Ты прошёл реляционную модель, JOIN’ы, агрегации, оконные функции, рекурсивные CTE, типы PostgreSQL, проектирование, транзакции и базовую оптимизацию. По отдельности всё это казалось серией концепций. В capstone время сложить их в одно: сделать реальную работу аналитика данных.

Никакого нового материала больше не будет. Только задачи.

Контекст

Тебя только что приняли в команду небольшого интернет-магазина. Магазин уже работает несколько месяцев, в базе скопилось ~12 клиентов, 20 товаров, 20 заказов с позициями и платежами. Это та же e-commerce-вселенная, на которой мы упражнялись все 12 модулей — customers, products, categories, orders, order_items, payments, event_log. Всё уже в pglite, можно сразу запускать запросы.

Менеджмент пришёл к тебе с десятью вопросами, которые ему нужны для принятия решений: куда тратить рекламный бюджет, какие товары закупать, кому отправлять промокоды. По каждому вопросу будет:

  1. Бизнес-формулировка («сколько мы заработали с клиентов из России?»).
  2. Подсказка, какие операции реляционной алгебры тебе потребуются.
  3. Sandbox со starter-кодом — где ты пишешь решение.
  4. После твоего решения — наша версия и обсуждение, почему она именно такая.

Правила игры

  • Каждую задачу решай прежде, чем смотреть на наше решение. Это единственный способ научиться.
  • Если застрял — открой соответствующий модуль и перечитай раздел.
  • Запросы должны быть прямые и читаемые. Если можно написать через CTE — пиши через CTE. Если можно одним JOIN — одним JOIN. Не пытайся быть умнее оптимизатора.
  • Не используй ничего, что не было в курсе. Если хочется чего-то экзотического — это знак, что ты усложняешь.

Что напомнить себе перед стартом

Карта вселенной магазина

Семь таблиц, две извлечения. Всё, с чем работаем.

customersid, email, full_name, country, birth_year, signup_date
categoriesid, name, parent_id (иерархия!)
productsid, sku, name, category_id, price_cents, in_stock
ordersid, customer_id, placed_at, status
order_itemsorder_id, product_id, qty, unit_price_cents
paymentsid, order_id, paid_at, amount_cents, method
event_logid, customer_id, event_type, occurred_at, payload JSONB

Посмотри сам, проверь, что помнишь:

Список всех таблиц во вселенной — выведи через системный каталог. Если эти семь имён ничего тебе не говорят — пройди по модулям ещё раз перед capstone.

PostgreSQL

Готов? Переходи к следующему уроку — там десять задач.

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3