Найм SQL-аналитика — процесс с множеством точек, где можно ошибиться: завысить требования, неверно оценить уровень, пропустить слабые стороны. Этот чеклист собирает все этапы в одном месте.
Этап 1: Подготовка вакансии
Определите реальные задачи аналитика в вашей компании
Перед написанием вакансии ответьте на вопросы:
- Какие отчёты нужно строить? (разовые vs. регулярные)
- С какими объёмами данных работает команда?
- Нужна ли самостоятельная работа с БД или есть дата-инженеры?
- Какие инструменты используются (BI, Python, dbt)?
Честно опишите требования
Частая ошибка — требовать Senior-навыки на Junior-зарплату. Определите реальный минимум:
| Уровень | SQL-навыки | Зарплата 2026 |
|---|---|---|
| Junior | SELECT, JOIN, GROUP BY | 60–90 тыс. руб. |
| Middle | CTE, оконные функции, оптимизация | 100–160 тыс. руб. |
| Senior | Архитектура, оптимизация, наставничество | 180–280 тыс. руб. |
Этап 2: Скрининг резюме
- Есть упоминание конкретных СУБД (PostgreSQL, ClickHouse, MySQL)
- Указан опыт работы с реальными данными (не только учебные проекты для Junior)
- Есть примеры задач или проектов с данными
- Для Middle/Senior — упоминание оптимизации или работы с большими объёмами
Красные флаги в резюме:
- «Знаю SQL» без конкретики
- Все навыки на уровне «продвинутый» или «эксперт» — нереалистично
- Только теоретические курсы без практики
Этап 3: Телефонный скрининг (15 минут)
Задайте 3–4 вопроса для первичной проверки:
- «С какой СУБД работали больше всего? Можете рассказать о сложном запросе?»
- «Что такое оконная функция? Когда вы её использовали?»
- «Как бы вы нашли причину медленного запроса?»
Если кандидат отвечает уверенно и с примерами — приглашайте на тест. Если плавает в базовых понятиях — вряд ли стоит тратить время на полное интервью.
Этап 4: Технический тест
Для Junior (30 минут)
-- Задача 1: Выведите топ-3 продукта по продажам в каждом регионе
SELECT region, product_name, total_sales
FROM (
SELECT
region,
product_name,
SUM(quantity * price) AS total_sales,
RANK() OVER (PARTITION BY region ORDER BY SUM(quantity * price) DESC) AS rnk
FROM sales
GROUP BY region, product_name
) t
WHERE rnk <= 3;
Для Middle (45 минут)
Добавьте задачи на CTE и оконные функции:
-- Задача: посчитайте месяц-к-месяцу рост выручки
WITH monthly AS (
SELECT
DATE_TRUNC('month', order_date) AS month,
SUM(amount) AS revenue
FROM orders
GROUP BY 1
)
SELECT
month,
revenue,
LAG(revenue) OVER (ORDER BY month) AS prev_revenue,
ROUND(100.0 * (revenue - LAG(revenue) OVER (ORDER BY month))
/ LAG(revenue) OVER (ORDER BY month), 1) AS growth_pct
FROM monthly;
Для Senior (60 минут)
Добавьте задачу на оптимизацию: дайте медленный запрос и попросите его переписать с объяснением.
Этап 5: Техническое интервью
Структура разговора (60 минут):
- 10 мин — разбор тестового задания
- 20 мин — обсуждение предыдущих проектов
- 15 мин — вопросы по теории (индексы, транзакции, специфика СУБД)
- 10 мин — обсуждение задач, с которыми предстоит работать
- 5 мин — вопросы кандидата
Этап 6: Проверка soft skills
SQL-аналитик работает с бизнесом — важно не только умение писать запросы, но и:
- Умение переводить бизнес-вопрос в SQL-задачу
- Способность объяснить результаты нетехническому коллеге
- Проактивность: задаёт уточняющие вопросы, а не молча выполняет задачу
Проверочный вопрос: «Маркетолог просит "посчитать эффективность рекламной кампании". Какие уточняющие вопросы вы зададите?»
Этап 7: Принятие решения
Используйте стандартизированную форму оценки:
| Критерий | Вес | Оценка (1–5) | Взвешенный балл |
|---|---|---|---|
| SQL-навыки (тест) | 40% | ||
| Системное мышление | 25% | ||
| Коммуникация | 20% | ||
| Культурный fit | 15% | ||
| Итого | 100% |
Проходной балл: от 3.5.
Оффер и адаптация
- Согласуйте испытательный срок с реальными задачами, а не формальными
- Дайте доступ к данным и инструментам в первый день
- Назначьте наставника из команды данных
Хотите быть уверены в уровне кандидата до оффера? Попросите пройти открытый курс на SQLlab.ru — это бесплатно и даст объективное представление об уровне навыков.