Вопросы по SQL на собеседовании аналитика

Что спрашивают по SQL

SQL — обязательный блок на любом собеседовании в аналитику. Не важно, идёте вы в продуктовую команду, маркетинговую аналитику или data engineering — SQL спросят.

Типы SQL JOIN

Вопросы делятся на уровни:

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

Эти ловушки повторяются на собеседованиях снова и снова. Их нужно один раз разобрать и довести до автоматизма.

Примеры вопросов

Попробуйте ответить без подсказок:

  1. Что делает оператор DISTINCT? Убирает дубликаты / Сортирует строки / Убирает NULL / Группирует значения

  2. Чем отличается ROW_NUMBER() от RANK()? ROW_NUMBER() даёт уникальный номер без пропусков — даже при одинаковых значениях. RANK() присвоит одинаковый ранг и пропустит следующий.

  3. Что делает HAVING? Фильтрует группы после GROUP BY / Фильтрует строки до группировки / Сортирует результаты / Считает агрегаты

  4. В чём разница между WHERE и HAVING? WHERE фильтрует строки до группировки, HAVING — после. В HAVING можно использовать агрегатные функции.

  5. Что вернёт LEFT JOIN, если в правой таблице нет совпадения? Строку из левой таблицы с NULL вместо значений правой.

  6. Когда UNION ALL лучше UNION? Когда не нужно удалять дубликаты — UNION ALL быстрее, потому что не сортирует.

В Карьернике 200+ вопросов по SQL — от базовых до продвинутых оконных функций. Каждый с разбором.

Другие темы

Как готовиться к SQL-части

  1. Разберите порядок выполнения SQL-запроса — FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Это основа, которая снимает 80% путаницы.

  2. Освойте оконные функции — это самый частый «средний» вопрос. ROW_NUMBER, RANK, LAG/LEAD, SUM OVER — must have.

  3. Практикуйтесь на коротких вопросах — не нужно решать задачи на 40 строк SQL. На собеседовании проверяют понимание концепций, а не способность написать ETL.

  4. Разбирайте ошибки — после неправильного ответа прочитайте объяснение и запомните паттерн. В Карьернике разбор показывается сразу после ответа.

FAQ

Какие вопросы по SQL задают на собеседовании аналитика?

Чаще всего: оконные функции (ROW_NUMBER, RANK, LAG), JOIN и их типы, GROUP BY + HAVING, подзапросы vs CTE. На senior-уровне добавляются вопросы по оптимизации и планам выполнения.

Хватит ли знания SELECT, WHERE, GROUP BY для junior-позиции?

Для входа — да, но конкуренция высокая. Оконные функции выделят вас среди других кандидатов. В Карьернике вопросы идут от простых к сложным — можно начать с основ и постепенно дойти до оконных функций.

Сколько вопросов по SQL в Карьернике?

200+ вопросов, разбитых по подтемам: основы, JOIN, агрегации, оконные функции, подзапросы, оптимизация. Каждый вопрос с подробным разбором.