← К блогу

Тестовое задание аналитика данных

📅 Декабрь 2024 - 15 мин чтения

Тестовое задание - обязательный этап отбора в большинстве компаний. Разберем типичные задачи и как их решать.

Типы тестовых заданий

Примеры SQL-задач

Яндекс Активные пользователи

Найди пользователей, которые совершили более 3 заказов за последние 30 дней.

Решение:
SELECT user_id, COUNT(*) as order_count
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY user_id
HAVING COUNT(*) > 3;

Тинькофф Retention по когортам

Рассчитай retention 7-го дня для когорт пользователей по месяцу регистрации.

Решение:
WITH cohorts AS (
    SELECT 
        user_id,
        DATE_TRUNC('month', reg_date) as cohort
    FROM users
),
activity AS (
    SELECT DISTINCT user_id, DATE(event_date) as active_date
    FROM events
)
SELECT 
    c.cohort,
    COUNT(DISTINCT c.user_id) as cohort_size,
    COUNT(DISTINCT CASE 
        WHEN a.active_date = c.cohort + INTERVAL '7 days' 
        THEN c.user_id 
    END) as retained,
    ROUND(100.0 * COUNT(DISTINCT CASE 
        WHEN a.active_date = c.cohort + INTERVAL '7 days' 
        THEN c.user_id 
    END) / COUNT(DISTINCT c.user_id), 2) as retention_d7
FROM cohorts c
LEFT JOIN activity a ON c.user_id = a.user_id
GROUP BY c.cohort;

Сбер Оконные функции

Для каждого клиента найди разницу между текущей и предыдущей транзакцией.

Решение:
SELECT 
    client_id,
    transaction_date,
    amount,
    amount - LAG(amount) OVER (
        PARTITION BY client_id 
        ORDER BY transaction_date
    ) as diff_from_prev
FROM transactions;

Пример продуктового кейса

VK A/B тест

Мы провели A/B тест нового дизайна кнопки. Результаты:

Вопросы: Статистически значим ли результат? Стоит ли раскатывать?

Решение:

1. Рассчитаем p-value (chi-square тест):

from scipy.stats import chi2_contingency
table = [[500, 9500], [550, 9450]]
chi2, p_value, dof, expected = chi2_contingency(table)
print(f"p-value: {p_value:.4f}")  # 0.1573

2. p-value = 0.157 > 0.05, результат НЕ статистически значим.

3. Рекомендация: не раскатывать, нужно больше данных или пересмотреть гипотезу.

Чек-лист подготовки

Совет: Даже если не знаешь точное решение - покажи ход мысли. Работодатели ценят логику и умение рассуждать больше, чем идеальный код.

Частые ошибки

Практикуйся на реальных задачах

SQL-задачи из Яндекса, Тинькофф, Сбера

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