Двенадцать модулей за спиной. Ты прошёл реляционную модель, JOIN’ы, агрегации, оконные функции, рекурсивные CTE, типы PostgreSQL, проектирование, транзакции и базовую оптимизацию. По отдельности всё это казалось серией концепций. В capstone время сложить их в одно: сделать реальную работу аналитика данных.
Никакого нового материала больше не будет. Только задачи.
Контекст
Тебя только что приняли в команду небольшого интернет-магазина. Магазин уже работает несколько месяцев, в базе скопилось ~12 клиентов, 20 товаров, 20 заказов с позициями и платежами. Это та же e-commerce-вселенная, на которой мы упражнялись все 12 модулей — customers, products, categories, orders, order_items, payments, event_log. Всё уже в pglite, можно сразу запускать запросы.
Менеджмент пришёл к тебе с десятью вопросами, которые ему нужны для принятия решений: куда тратить рекламный бюджет, какие товары закупать, кому отправлять промокоды. По каждому вопросу будет:
- Бизнес-формулировка («сколько мы заработали с клиентов из России?»).
- Подсказка, какие операции реляционной алгебры тебе потребуются.
- Sandbox со starter-кодом — где ты пишешь решение.
- После твоего решения — наша версия и обсуждение, почему она именно такая.
Правила игры
- Каждую задачу решай прежде, чем смотреть на наше решение. Это единственный способ научиться.
- Если застрял — открой соответствующий модуль и перечитай раздел.
- Запросы должны быть прямые и читаемые. Если можно написать через CTE — пиши через CTE. Если можно одним JOIN — одним JOIN. Не пытайся быть умнее оптимизатора.
- Не используй ничего, что не было в курсе. Если хочется чего-то экзотического — это знак, что ты усложняешь.
Что напомнить себе перед стартом
Семь таблиц, две извлечения. Всё, с чем работаем.
Посмотри сам, проверь, что помнишь:
Список всех таблиц во вселенной — выведи через системный каталог. Если эти семь имён ничего тебе не говорят — пройди по модулям ещё раз перед capstone.
Готов? Переходи к следующему уроку — там десять задач.