Чему вы научитесь
- Запускать локальную учебную базу SQLite и выполнять SQL-запросы к данным интернет-магазина
- Определять ключи, связи и уровень детализации строк в таблицах пользователей, заказов, товарных позиций, платежей и доставок
- Рассчитывать стоимость товаров в заказе по количеству и цене каждой позиции
- Сравнивать INNER JOIN и LEFT JOIN и сохранять в выборке заказы без платежей или других связанных записей
- Находить размножение строк при соединении заказов с несколькими позициями и доставками
- Различать COUNT(*) и COUNT(DISTINCT order_id) при подсчёте строк и уникальных заказов
- Объяснять, почему SUM(DISTINCT ...) теряет корректные суммы одинаковых по стоимости позиций
- Использовать GROUP BY для расчёта агрегатов и получать ровно одну строку на заказ
- Различать отсутствие платежа и нулевую сумму, корректно применять NULL и COALESCE в отчётах
- Считать только успешные платежи, исключая ожидающие и неуспешные попытки оплаты
- Находить неоплаченные и частично оплаченные заказы и рассчитывать разницу между стоимостью товаров и суммой платежей
- Использовать CTE и подзапросы для независимой агрегации товарных позиций и платежей до соединения результатов
- Применять EXISTS для проверки наличия связанных записей без увеличения числа строк
- Обнаруживать повторный импорт одного платежа по идентификатору транзакции в пределах заказа
- Учитывать разные успешные транзакции с одинаковой суммой, не удаляя их как дубликаты
- Проверять, что дополнительные доставки и неуспешные платежи не изменяют итоговые денежные показатели
- Сверять значения по каждому заказу и общие суммы отчёта с независимыми запросами к исходным таблицам
- Проверять SQL-расчёты на изменённых данных, включая новые позиции, другую стоимость заказа и повторные записи
- Самостоятельно находить несколько причин неверных расчётов в готовом SQL-отчёте и исправлять их
- Создавать итоговый отчёт с одной строкой на заказ, корректными суммами и проверкой на семи наборах данных
О курсе
Для кого этот курс
Начальные требования
📚 Начальные знания
- Уметь выполнять базовый SELECT, выбирать столбцы, использовать WHERE и читать таблицу результата.
- Понимать, что такое строка, столбец и идентификатор записи.
- Уметь открыть терминал и запустить команду. JOIN, CTE и агрегаты разбираются в курсе.
🧰 Окружение
- Python 3.12 или новее со встроенным модулем sqlite3. Установка серверной базы не требуется.
- Редактор для SQL-файлов и терминал на Windows, macOS или Linux.
- Git полезен, но необязателен: учебный архив можно скачать без аккаунта GitHub.
- После подготовки стенда все проверки должны работать локально и без интернета.
⏱️ Время и формат
Курс бесплатный. Ориентир — 7–10 часов с самостоятельными заданиями. Ответы на вопросы проверяются автоматически; собственные SQL-файлы проверяет локальный скрипт, без ручной рецензии.
✅ Что не потребуется
Docker, облачная база, платные сервисы, API-ключи, доступ к реальным заказам или обязательный форк GitHub.
Преподаватели курса
Как проходит обучение
🧮 От исходных строк к проверенному отчёту. На одной локальной базе SQLite вы постепенно разбираете JOIN, агрегаты и причины неверных сумм.
- 🔎 Исследуете данные: проверяете, где появляются лишние строки и почему пропадают неоплаченные заказы.
- 🛠️ Пишете свои запросы: исправляете расчёты и небольшой аналитический отчёт.
- ✅ Сверяете итог: сравниваете суммы с исходными таблицами и запускаете локальную автоматическую проверку.
Что вы получите
- Локальная учебная база SQLite с синтетическими пользователями, заказами, товарными позициями, платежами и доставками
- Собственные SQL-запросы для расчёта стоимости заказов, сравнения INNER JOIN и LEFT JOIN и обнаружения размножения строк
- Запросы с GROUP BY, CTE, подзапросами и EXISTS для расчётов без повторного учёта записей
- Проверки успешных, неуспешных и отсутствующих платежей, повторных импортов и частично оплаченных заказов
- Независимые SQL-сверки сумм товаров и платежей по каждому заказу и по всей выборке
- Исправленный итоговый запрос queries/final_report.sql с идентификатором и статусом заказа, стоимостью товаров, суммой успешных платежей и разницей
- Результаты локальной автоматической проверки отчёта на семи наборах данных, включая случаи с повторными платежами, новыми доставками и изменёнными позициями