учебный путь · sql

SQL для аналитиков

  • SQL
  • Начинающий
  • 5 модулей
  • 25 задач
  • Бесплатно

Практика PostgreSQL на данных интернет-магазина «Ярко»: от первого SELECT до когортного анализа. Выборки, агрегаты, соединения, даты и оконные функции — то, что спрашивают на собеседованиях аналитиков.

AI-ассистент ведёт подсказками, но решение не выдаёт
intro

Что тебя ждёт в этом пути

// Что ты построишь

25 запросов к базе интернет-магазина — от первой строки SELECT до когортного анализа, который спрашивают на собеседовании аналитика. Данные живые и грязные: город записан то «Казань», то «казань», у части клиентов нет почты, суммы заказов не всегда сходятся с позициями. Ты научишься доставать из такой базы честные цифры: выручку по городам, средний чек по каналам, спящих клиентов, топ товаров в каждой категории, выручку нарастающим итогом и возвращаемость по когортам.

// Для кого

Ты идёшь в аналитику данных или уже работаешь с отчётами, но SQL знаешь по обрывкам. Программировать не нужно: первая задача решается одной строкой, а каждая новая конструкция вводится своим модулем — сначала выборки, потом агрегаты, соединения, даты и только в финале оконные функции.

// Чему научишься
  • SELECT, WHERE, ORDER BY с ничьими, ILIKE и NULL-семантика
  • GROUP BY и HAVING: чем фильтр по строкам отличается от фильтра по агрегату
  • INNER и LEFT JOIN, анти-джойн и ловушка «LEFT JOIN + WHERE»
  • Полуоткрытые интервалы дат, date_trunc, интервальная арифметика
  • Подзапросы, CTE и DISTINCT ON
  • Оконные функции: rank, выручка нарастающим итогом, топ-1 в группе
  • Когорты и retention — задача с реального собеседования
curriculum

Задачи пути — 5 модулей, 25 задач

Каждый модуль — навык. Решаешь задачи по порядку, и к финалу из них собирается рабочий результат.

25 задач · 5 модулей
1.1
Список клиентов
Первый SELECT: две колонки из таблицы клиентов с сортировкой по имени.
1.2
Крупные оплаченные заказы
Составное условие WHERE: статус и денежная граница «от».
1.3
Витрина дорогих товаров
ORDER BY по убыванию с tie-break и LIMIT: топ-5 каталога.
1.4
Клиенты из Казани
Регистронезависимый поиск по строке: ILIKE против грязных данных.
1.5
Дырявые анкеты
NULL нельзя поймать через «= NULL»: IS NULL и условие ИЛИ.
2.1
Заказы по статусам
Первый GROUP BY: число заказов в каждом статусе, имя метрики через AS.
2.2
Средний чек по каналам
WHERE до группировки, avg и округление до копеек через round.
2.3
Постоянные покупатели
Первый HAVING: фильтр по агрегату отбирает клиентов с тремя и более оплаченными заказами.
2.4
Ценовые вилки категорий
Два агрегата в одном запросе: min и max цены каждой категории.
2.5
Ходовые позиции
sum вместо count: суммарное количество по строкам заказов и порог через HAVING.
3.1
Заказы с именами
Первый INNER JOIN: имена клиентов к pending-заказам по внешнему ключу.
3.2
Молчаливые клиенты
Анти-джойн: LEFT JOIN + IS NULL находит клиентов без единого заказа.
3.3
Выручка по городам
JOIN + GROUP BY: оплаченная выручка по городам клиентов, «казань» отдельно от «Казань».
3.4
Июньский зачёт по всем
LEFT JOIN с условиями в ON и coalesce: июньская оплата каждого клиента, включая нули.
3.5
Сверка сумм заказов
Аудит данных: JOIN + HAVING находит заказы, где amount расходится с суммой позиций.
4.1
Заказы июня
Выборка за месяц через полуоткрытый интервал: BETWEEN теряет последний день.
4.2
Динамика по месяцам
date_trunc обрезает таймстамп до месяца, ::date приводит к дате.
4.3
Дата первой покупки
min по времени + каст к дате: точка отсчёта для когортного анализа.
4.4
Долгий путь к покупке
Разница дат в днях: date - date = integer в PostgreSQL.
4.5
Спящие клиенты
Интервальная арифметика от литеральной даты «сегодня»: последний заказ старше 60 дней.
5.1
Выше среднего чека
Скалярный подзапрос в WHERE: заказы дороже среднего чека.
5.2
Последний заказ каждого
PostgreSQL-идиома DISTINCT ON: первая строка каждой группы.
5.3
Бестселлер каждой категории
rank() OVER (PARTITION BY …): топ-1 в каждой категории.
5.4
Выручка нарастающим итогом
Оконный агрегат поверх GROUP BY: дневная выручка и нарастающий итог.
5.5
Когорты и возвращаемость капстоун
Финал курса: когорты по месяцу первой покупки и retention.
koddo start sql-for-analysts

Готов начать этот путь?

Зарегистрируйся — откроем путь прямо на первой задаче. Без установки и настройки, всё в браузере.