SQLLab
Все статьи

SQL: как отличить middle от senior на собеседовании

Практическое руководство для HR: конкретные критерии и вопросы, которые помогут разграничить уровни middle и senior по SQL.

15 января 2026 г.·3 мин чтения·

Одна из самых частых жалоб нанимающих менеджеров: «Мы взяли middle, а по факту получили junior». Или наоборот — переплатили за senior, который едва справляется с оконными функциями. Проблема обычно возникает на этапе скрининга, когда HR не имеет чёткого понимания, чем эти уровни различаются в контексте SQL.

Почему это важно именно сейчас

Рынок аналитиков и разработчиков становится всё более насыщённым. Кандидаты научились красиво описывать опыт в резюме, но реальные навыки часто не соответствуют заявленному грейду. SQL — один из немногих навыков, где разницу можно проверить объективно, с помощью конкретных задач.

Ключевые различия по уровням

Middle-разработчик или аналитик

Middle уверенно работает с базовыми и средними конструкциями:

  • Пишет сложные JOIN (включая LEFT, RIGHT, FULL OUTER)
  • Использует агрегатные функции с GROUP BY и HAVING
  • Понимает подзапросы и умеет их применять
  • Работает с CASE WHEN для условной логики
  • Знает основные оконные функции: ROW_NUMBER(), RANK(), LAG()/LEAD()
  • Пишет CTE (WITH ... AS) для структурирования запросов

Типичный признак middle: решает задачу, но иногда делает это неэффективно — например, использует подзапрос там, где достаточно оконной функции.

Senior-разработчик или аналитик

Senior не просто решает задачу — он решает её правильно:

  • Думает о производительности: знает, когда нужен индекс, понимает EXPLAIN ANALYZE
  • Владеет продвинутыми оконными функциями: NTILE(), PERCENT_RANK(), CUME_DIST()
  • Умеет работать с рекурсивными CTE
  • Понимает транзакции, уровни изоляции, блокировки
  • Может оптимизировать медленный запрос, предложить архитектурное решение
  • Знает специфику конкретной СУБД (партиционирование, материализованные представления)

Типичный признак senior: сначала уточняет объём данных и контекст, прежде чем писать запрос.

Вопросы для разграничения уровней

Ниже — конкретные вопросы, которые можно задавать в ходе интервью.

Блок middle

  1. «Напишите запрос, который выводит топ-3 продукта по продажам в каждой категории.»
  2. «Чем отличается WHERE от HAVING
  3. «Как вы напишете запрос, чтобы найти пользователей, которые совершили покупку в январе, но не совершили в феврале?»

Что ожидать: кандидат решает задачу самостоятельно, может объяснить логику. Допустимо, если решение не оптимальное.

Блок senior

  1. «У вас есть таблица на 500 млн строк. Запрос выполняется 40 секунд. Что вы будете делать?»
  2. «Объясните разницу между RANK() и DENSE_RANK(). Приведите пример, где это важно.»
  3. «Напишите рекурсивный CTE для построения дерева категорий.»
  4. «Как вы обеспечите консистентность данных при одновременной записи из нескольких потоков?»

Что ожидать: кандидат не только решает, но и задаёт уточняющие вопросы, объясняет trade-off, упоминает производительность.

Сигналы, на которые обращает внимание нанимающий менеджер

ПоведениеMiddleSenior
Читает задачуСразу пишетУточняет требования
ПроизводительностьНе думаетСразу учитывает
ОшибкиИсправляет по подсказкеСам находит
ОбъяснениеОписывает что делаетОбъясняет почему
АльтернативыНе предлагаетНазывает несколько подходов

Как автоматизировать разграничение

Ручная оценка занимает время. Удобнее дать кандидату тест с задачами разного уровня сложности и автоматически проверить результат. Платформа sqllab.ru позволяет настроить наборы задач под конкретный грейд — middle и senior получают разные задания, результаты проверяются автоматически.

Это особенно полезно, когда в воронке одновременно несколько кандидатов с похожими резюме.

Чек-лист для HR перед интервью

  • Уточнить у нанимающего менеджера: какой грейд нужен — middle или senior?
  • Получить 2-3 конкретных задачи для каждого уровня
  • Договориться о критериях: что будет «проходным баллом»
  • Зафиксировать, что именно проверяет каждая задача
  • После интервью сравнить результаты с эталоном

Итог

Разница между middle и senior по SQL — не просто в сложности запросов. Это разница в подходе к задаче: middle выполняет, senior проектирует. Если вы научите рекрутеров различать эти паттерны поведения, качество найма заметно вырастет.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →