SQL-вопросы на собесе аналитика в Т-Банке
payments(user_id) и refunds(user_id). Нужно получить пользователей, у которых был платёж, но не было ни одного возврата. Какой запрос корректнее всего описывает задачу?О чём эта статья
Т-Банк (ранее Тинькофф) — одна из компаний с сильной культурой аналитики в России. Для аналитических ролей здесь традиционно высокая планка по SQL. Ниже — типы задач, которые полезно проработать перед собеседованием.
Информация основана на публичных источниках и опыте кандидатов. Конкретный набор задач зависит от команды и уровня позиции. Актуальные вакансии и требования — на официальной странице Т-Банка.
Формат секции
Обычно одна-две технические секции по 45–90 минут. Живое решение задач в общем редакторе. Важно не только получить правильный ответ, но и проговаривать ход мысли, уточнять условия, обсуждать альтернативы.
Типы задач
Оконные функции
Обязательный блок. Стоит уверенно владеть:
ROW_NUMBER,RANK,DENSE_RANKLAG,LEAD- Агрегации с
OVER - Оконные рамки
Полезно:
Сложные JOIN'ы
Задачи с тремя-четырьмя таблицами, где нужно аккуратно выбирать тип соединения и условия.
Расчёт банковских метрик
- Просрочка и её доли по когортам
- Активные клиенты, их сегментация
- Транзакционные метрики за период
- Подсчёт баланса на конец периода
Антифрод-паттерны
Классические задачи:
- Много транзакций за короткое время по одной карте
- Подозрительные гео-переходы
- Повышенная доля отклонений у продавца
WITH with_prev AS (
SELECT
card_id,
created_at,
country,
LAG(country) OVER (PARTITION BY card_id ORDER BY created_at) AS prev_country,
LAG(created_at) OVER (PARTITION BY card_id ORDER BY created_at) AS prev_time
FROM transactions
)
SELECT *
FROM with_prev
WHERE country != prev_country
AND EXTRACT(EPOCH FROM (created_at - prev_time)) / 3600 < 1;Когортный анализ
Retention и удержание клиентов по месяцам. Полезно:
Оптимизация запросов
Ожидают, что вы:
- Прочитаете план (
EXPLAIN) - Предложите индекс или переписанный JOIN
- Обсудите партиционирование или материализацию
Полезно: SQL-оптимизация для аналитика.
Python и аналитика
Помимо SQL в Т-Банке часто проверяют Python на уровне pandas: чтение данных, трансформации, агрегации, базовая визуализация.
Для ML-направлений — sklearn, типичные задачи классификации, метрики AUC / Gini / KS. Полезно:
Как показать себя
- Уточняйте условия задачи перед тем, как писать
- Предлагайте несколько подходов и обсуждайте trade-off'ы
- Проговаривайте edge cases: NULL, дубли, граничные условия
- Будьте честными: если чего-то не помните, скажите и предложите, как это обычно решается
Связанные темы
- Собеседование аналитика в Т-Банке
- 50 вопросов по SQL
- Задачи SQL на собесе
- Как подготовиться к SQL-собесу за неделю
FAQ
Какой уровень SQL ожидают?
Уверенный middle или выше: оконные функции, CTE, оптимизация.
ClickHouse нужен?
Для многих команд работа идёт в ClickHouse — знание полезно.
Python обязателен?
Базовый pandas как минимум; для ML-ролей — дополнительно sklearn.