Вопросы по SQL на собеседовании аналитика
Что спрашивают по SQL
SQL — обязательный блок на любом собеседовании в аналитику. Не важно, идёте вы в продуктовую команду, маркетинговую аналитику или data engineering — SQL спросят.
Вопросы делятся на уровни:
Junior:
- Разница между WHERE и HAVING
- Типы JOIN и когда какой использовать
- GROUP BY и агрегатные функции
- DISTINCT, ORDER BY, LIMIT
- NULL и его поведение в сравнениях
Middle:
- Оконные функции: ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD
- Подзапросы vs CTE (WITH)
- Разница между UNION и UNION ALL
- Индексы и их влияние на производительность
- Оптимизация запросов
Senior:
- Планы выполнения запросов (EXPLAIN)
- Партиционирование и шардинг
- Транзакции и уровни изоляции
- Рекурсивные CTE
- Оконные фреймы (ROWS BETWEEN, RANGE)
Почему SQL проваливают
Большинство кандидатов знают теорию, но спотыкаются на нюансах. Типичные ловушки:
- RANK vs ROW_NUMBER — не могут объяснить разницу при одинаковых значениях
- NULL в WHERE — забывают, что
NULL != NULLиNOT INс NULL ломает запрос - HAVING без GROUP BY — путают порядок выполнения SQL-запроса
- LEFT JOIN + WHERE на правой таблице — фактически превращают в INNER JOIN
Эти ловушки повторяются на собеседованиях снова и снова. Их нужно один раз разобрать и довести до автоматизма.
Примеры вопросов
Попробуйте ответить без подсказок:
Что делает оператор DISTINCT? Убирает дубликаты / Сортирует строки / Убирает NULL / Группирует значения
Чем отличается ROW_NUMBER() от RANK()? ROW_NUMBER() даёт уникальный номер без пропусков — даже при одинаковых значениях. RANK() присвоит одинаковый ранг и пропустит следующий.
Что делает HAVING? Фильтрует группы после GROUP BY / Фильтрует строки до группировки / Сортирует результаты / Считает агрегаты
В чём разница между WHERE и HAVING? WHERE фильтрует строки до группировки, HAVING — после. В HAVING можно использовать агрегатные функции.
Что вернёт LEFT JOIN, если в правой таблице нет совпадения? Строку из левой таблицы с NULL вместо значений правой.
Когда UNION ALL лучше UNION? Когда не нужно удалять дубликаты — UNION ALL быстрее, потому что не сортирует.
В Карьернике 200+ вопросов по SQL — от базовых до продвинутых оконных функций. Каждый с разбором.
Другие темы
- Подготовка к собеседованию аналитика данных
- Вопросы по Python на собеседовании
- A/B тестирование: вопросы на собеседовании
- Продуктовая аналитика: собеседование
- Статистика и вероятности
- Задачи на логику для аналитика
Как готовиться к SQL-части
Разберите порядок выполнения SQL-запроса — FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Это основа, которая снимает 80% путаницы.
Освойте оконные функции — это самый частый «средний» вопрос. ROW_NUMBER, RANK, LAG/LEAD, SUM OVER — must have.
Практикуйтесь на коротких вопросах — не нужно решать задачи на 40 строк SQL. На собеседовании проверяют понимание концепций, а не способность написать ETL.
Разбирайте ошибки — после неправильного ответа прочитайте объяснение и запомните паттерн. В Карьернике разбор показывается сразу после ответа.
FAQ
Какие вопросы по SQL задают на собеседовании аналитика?
Чаще всего: оконные функции (ROW_NUMBER, RANK, LAG), JOIN и их типы, GROUP BY + HAVING, подзапросы vs CTE. На senior-уровне добавляются вопросы по оптимизации и планам выполнения.
Хватит ли знания SELECT, WHERE, GROUP BY для junior-позиции?
Для входа — да, но конкуренция высокая. Оконные функции выделят вас среди других кандидатов. В Карьернике вопросы идут от простых к сложным — можно начать с основ и постепенно дойти до оконных функций.
Сколько вопросов по SQL в Карьернике?
200+ вопросов, разбитых по подтемам: основы, JOIN, агрегации, оконные функции, подзапросы, оптимизация. Каждый вопрос с подробным разбором.