SQL для аналитика
SQL — первый фильтр в вакансиях аналитика: без него не смотрят дальше резюме. Хорошая новость в том, что для работы аналитику нужен вполне обозримый набор: SELECT с условиями, JOIN, группировки с агрегатами и подзапросы. Ровно вокруг этого набора и построен курс.
Главное здесь — запросы выполняются по-настоящему: вы пишете SELECT, он запускается на учебной базе прямо в браузере, и вы видите таблицу-результат. Ошиблись в соединении — увидите лишние строки, а не абстрактное «неверно». Такие задания есть и в самих уроках, и в домашней работе.
Курс бесплатен целиком, включая контрольную уровня и именной сертификат. Если SQL вам нужен со стороны данных, после него хорошо ложится курс «ИИ на практике» — как отдавать данные моделям и что с ними делать дальше.
Кому подойдёт
Программа
Восемнадцать уроков примерно на 9 часов занятий.
Понимать, из чего состоит таблица и как таблицы связаны, чем запрос отличается от выгрузки и почему части запроса выполняются не в том порядке, в каком пишутся.
Уметь выбрать нужные колонки, дать им читаемые имена, посчитать в запросе выражение и получить список значений без повторов.
Уметь отобрать нужные строки условием, правильно соединять несколько условий скобками и узнавать три ловушки, из-за которых отбор молча возвращает не то.
Записывать частые условия короткими словами вместо длинных цепочек, искать текст по образцу и правильно обращаться с незаполненными клетками — включая ловушку NOT IN, которая опустошает результат целиком.
Задавать порядок строк и не полагаться на случайный, строить «топ-N» и страницы, а также узнавать четыре случая, в которых список выглядит упорядоченным, а порядок в нём не тот.
Отвечать на вопросы одним числом: сколько, сколько всего, в среднем, минимум и максимум. Различать три записи COUNT и знать четыре места, где итог оказывается не тем, о котором спрашивали.
Получать не один итог, а итог по каждому значению: разрезы по категориям, городам и месяцам. Знать правило о том, что можно писать рядом с агрегатом, и три причины, по которым строка разреза пропадает.
Отбирать не строки, а готовые итоги: города с несколькими клиентами, заказы дороже порога, товары с числом отзывов выше нормы. Различать два сита и знать, почему одно из них дешевле.
Собирать данные из нескольких таблиц одним запросом: условие связи, псевдонимы таблиц, цепочка соединений и отчёт поверх неё. И узнавать главную ошибку соединения — потерянное условие связи, которое не даёт ошибки.
Показывать и тех, у кого пары нет: клиентов без заказов, товары без продаж, записи с оборванной связью. Правильно считать по таким строкам и не терять их условием в WHERE.
Понимать, почему после соединения суммы вырастают, уметь это заметить тремя способами и вылечить — считая итог до соединения, а не после.
Решать вопросы, которые не укладываются в один шаг: отобрать по посчитанному, посчитать итог от итога, проверить наличие связанных строк. И выбирать между подзапросом и соединением осознанно.
Выбирать значение по условию, считать несколько разрезов одним запросом, задавать свой порядок сортировки и группировать по вычисленному признаку — не попадаясь на порядок веток и забытый ELSE.
Собрать в одно правило всё, что пустота делала в прошлых уроках: три исхода условия, карту мест, где она выпадает и где остаётся, замену через COALESCE и NULLIF и три источника её появления.
Задавать период так, чтобы не терять последний день, строить отчёты по месяцам и годам, приводить текст к единому виду и находить в нём мусор — и знать четыре ловушки, из-за которых отбор по дате или тексту молча промахивается.
Добавлять, править и удалять строки так, чтобы не задеть лишнего: сначала посмотреть тем же условием, потом менять, а связанные правки заворачивать в транзакцию — и понимать, что именно база проверяет за вас, а что не проверяет никто.
Превращать вопрос, заданный словами, в запрос: уточнять, что означает каждое слово, собирать отчёт шестью шагами от таблицы к виду и проверять его тремя способами прежде, чем отдать.
Разбирать расхождения по методу, а не наугад: сужать запрос до места, где число поехало, узнавать причину по каталогу — строк больше или строк меньше — и пользоваться шестью инструментами, которым не нужно ничего, кроме самого SQL.
Частые вопросы
Нужно ли уметь программировать до курса?
Нет. SQL — не язык программирования в привычном смысле: это язык вопросов к данным. Курс начинается с простых SELECT и доводит до JOIN, группировок и подзапросов без предварительной подготовки.
Какая база используется в заданиях?
Учебная база из шести связанных таблиц — покупатели, товары, заказы и строки заказов, отзывы, сотрудники. Она поднимается на время вашего запроса прямо в браузере: ничего не нужно устанавливать и настраивать. Синтаксис стандартный — навык переносится на PostgreSQL, MySQL и остальные базы.
Хватит ли этого курса для собеседования?
Для типового технического интервью уровня junior — да: JOIN, агрегаты, группировки и подзапросы покрывают большинство вопросов. Дальше решает практика — запросы вы пишете в каждом уроке, а потом ещё и в домашней работе.
Есть ли что-то для тех, кто уже пишет запросы?
Да, и это вторая половина курса: размножение строк при соединении, NULL и три состояния вместо двух, границы периода, разбор «запрос показывает не то». На этом спотыкаются и опытные. Порядок уроков — рекомендация: открыть можно любой, платформа только переспросит.
А тренажёр?
Он есть и живёт отдельной страницей: задачи берутся из банков уроков, которые вы уже прошли. Поэтому открывается он после первой сданной домашней работы — иначе показывал бы заранее то, что придёт в самой работе.
Начните с первого урока
Курс с погружением — бесплатно. Прогресс сохраняется в аккаунте, вернуться можно в любой момент.