Common Data

Все вопросы

Полная база вопросов с собеседований для Data-аналитиков и Data Scientist’ов.

WB
SQLЛегкийвопрос

Опиши правильный порядок, по которому движок БД обрабатывает SQL-запрос.

Опиши правильный порядок, по которому движок БД обрабатывает SQL-запрос.

WB
SQLСреднийзадача

Посчитать скользящее среднее по доле сервиса 'rec' в общей выручке всех серви…

Посчитать скользящее среднее по доле сервиса 'rec' в общей выручке всех сервисов в феврале 2023 года, в динамике по дням.

WB
PythonСреднийзадача

Необходимо произвести фильтрацию вложенного массива и извлечь элементы 1-го и…

Необходимо произвести фильтрацию вложенного массива и извлечь элементы 1-го индекса.

WB
PythonСреднийзадача

Напиши метод, который в качестве параметра принимает строку и возвращает слов…

Напиши метод, который в качестве параметра принимает строку и возвращает словарь с количеством символов. Пример: вход 'abcabb' → выход: {'a': 2, 'b': 3, 'c': 1}.

WB
PythonСреднийзадача

Напиши функцию, которая принимает на вход словарь вида d = {"Wildberries": 20…

Напиши функцию, которая принимает на вход словарь вида d = {"Wildberries": 20, "Ozon": 13, ...} (key — название маркетплейса, value — вес) и возвращает случайно сгенерированное название маркетплейса. Вероятность «выпадения» прямо пропорциональна весу. С какой сложностью работает алгоритм? Можно ли ускорить, если функцию нужно вызвать 10^6 раз?

WB
КейсыСложныйкейс

По итогам первого квартала продакт пришёл с ad-hoc задачей: «Нужно обосновани…

По итогам первого квартала продакт пришёл с ad-hoc задачей: «Нужно обоснование на данных, почему средний чек в сервисе rec ниже, чем у других сервисов?» Есть выгрузки orders (заказы) и events (просмотры и добавления в корзину). Как подойти к анализу?

WB
SQLСреднийзадача

Дана таблица сотрудников (employee_id, name, skill, salary). Бюджет на зарпла…

Дана таблица сотрудников (employee_id, name, skill, salary). Бюджет на зарплаты 500 тыс. руб. Напишите запрос, который выводит имена операторов для группы, если в приоритете операторы с наибольшим скилом.

WB
SQLСреднийзадача

Посчитайте медианную зарплату выбранных сотрудников (из задачи с бюджетом 500…

Посчитайте медианную зарплату выбранных сотрудников (из задачи с бюджетом 500 тыс.), не используя встроенную функцию медианы.

WB
PythonСреднийзадача

Дана строка (возможно пустая) из букв A-Z, например AAAABBBCCXYZDDDDEEEFFFAAA…

Дана строка (возможно пустая) из букв A-Z, например AAAABBBCCXYZDDDDEEEFFFAAAAAABBBB…C. Нужно написать функцию RLE (Run-Length Encoding), которая вернёт строку вида A4B3C2XYZD4E3F3A6B28. Если символ один раз — без числа, если больше — с числом повторений. Выдать ошибку при недопустимой строке.

WB
КейсыСложныйкейс

Открыли новую поддержку в Грузии. ПВЗ работают 2 месяца, заказы растут. Подде…

Открыли новую поддержку в Грузии. ПВЗ работают 2 месяца, заказы растут. Поддержка запущена месяц назад. Напиши список метрик, которые отражали бы эффективность работы поддержки.

Магнит
A/B тестыСреднийзадача

Ты аналитик в сервисе доставки продуктов. Команда тестирует блок с историей з…

Ты аналитик в сервисе доставки продуктов. Команда тестирует блок с историей заказов на главной странице приложения (группа B видит блок, группа A — нет). Даны таблицы df_ab_groups (user_id, ab_group) и df_financial (date, user_id, revenue). Задача 1: найти количество пользователей, попавших более чем в одну группу эксперимента.

Магнит
A/B тестыСреднийзадача

Посчитай суммарную выручку на клиента за период эксперимента и определи его г…

Посчитай суммарную выручку на клиента за период эксперимента и определи его группу. Данные: df_ab_groups (user_id, ab_group), df_financial (date, user_id, revenue).

Магнит
A/B тестыСреднийзадача

Напиши функцию, которая возвращает бокс-плот по выручке в разрезе A/B групп и…

Напиши функцию, которая возвращает бокс-плот по выручке в разрезе A/B групп и выводит итоги эксперимента: Uplift = X, p_value = Y, аудитория = N. Добавь параметр управления выбросами (перцентиль для порогового значения).

Магнит
SQLСреднийзадача

Таблица watch_content (user_id, video_id, date). Вывести список пользователей…

Таблица watch_content (user_id, video_id, date). Вывести список пользователей, смотревших video_id 1 и 3 (оба видео), но не смотревших video_id 2.

Магнит
SQLСреднийзадача

Таблица raw.orders (user_id, transaction_datetime, item_id, order_id) и dicts…

Таблица raw.orders (user_id, transaction_datetime, item_id, order_id) и dicts.items (item_id, brand, name, price). Для каждого пользователя вывести наименование и цену самого дорогого товара в его первой транзакции.

Магнит
SQLСреднийзадача

На основе таблицы raw.orders (user_id, transaction_datetime, item_id, order_i…

На основе таблицы raw.orders (user_id, transaction_datetime, item_id, order_id) вывести: 1) размер когорт по месяцам, 2) ретеншен 2-го месяца. Когорта — множество пользователей, объединённых месяцем первой покупки.

Магнит
A/B тестыСложныйкейс

Магнит запускает категорию кэшбэка совместно с банком-партнёром. Группа A (10…

Магнит запускает категорию кэшбэка совместно с банком-партнёром. Провели A/B тест на двух группах одинакового размера: группа A кэшбэк не видит, группа B видит. Результат: в группе A покупку совершили 1000 человек, в группе B — 1100 человек, при этом 300 из них воспользовались кэшбэком впервые. Тест прокрасился в зелёный — доля покупателей в B значимо выше. Как оценить экономический эффект программы?

Вкусвилл
SQLСреднийзадача

Дана таблица visits (Department, FIO, Date, Status). Status может быть: на ра…

Дана таблица visits (Department, FIO, Date, Status). Status может быть: на работе / на больничном / в отпуске (оплачиваемом) / в отпуске (за свой счет). Нужно вывести интервалы непрерывного нахождения сотрудника в определённом статусе (DateFrom, DateTo, Status).

Вкусвилл
PythonСреднийзадача

Написать функцию, которая будет выводить товары, не прошедшие минимальный пор…

Написать функцию, которая будет выводить товары, не прошедшие минимальный порог по продажам за месяц. На вход: минимальный порог выручки и массив продаж вида [[{"product_id": 1, "quantity": 2, "price": 100}], ...].

Вкусвилл
СтатистикаСреднийзадача

Мы промоутируем товары наших брендов в поисковой выдаче. Опция 1 — показывать…

Мы промоутируем товары наших брендов в поисковой выдаче. Опция 1 — показывать один товар на каждые 25 выданных. Опция 2 — заменить товар с шансом 4%. Сколько показов мы сделаем на 100 товаров? Каков шанс показать только 1 товар на 100 выданных при второй стратегии?

Вкусвилл
КейсыСложныйкейс

На корзине есть блок с товарами Зелёного Ценника (40% скидки на товары с подх…

На корзине есть блок с товарами Зелёного Ценника (40% скидки на товары с подходящим сроком годности). Планируем сделать фичу, подсвечивающую эти ценники. Какие риски оценивать и как с ними бороться?

Вкусвилл
КейсыСложныйкейс

Мы внедрили баннер «рецепты» в поиске приложения. Пользователи кликают, но ср…

Мы внедрили баннер «рецепты» в поиске приложения. Пользователи кликают, но средний чек и выручка не растут. Какие рекомендации?

Вкусвилл
КейсыСложныйкейс

Разработали новую логику построения маршрута в 2гис. Как понять, что она рабо…

Разработали новую логику построения маршрута в 2гис. Как понять, что она работает лучше?

Вкусвилл
КейсыСложныйкейс

SaaS-продукт по подписке. Бесплатный период — 1 месяц. Пользователи жалуются,…

SaaS-продукт по подписке. Бесплатный период — 1 месяц. Пользователи жалуются, что не успевают всё настроить за месяц. Стоит ли продлевать бесплатный период до 3 месяцев?

Вкусвилл
A/B тестыСложныйкейс

A/B тест серый — увеличилась только одна прокси-метрика (не основная). Какие …

A/B тест серый — увеличилась только одна прокси-метрика (не основная). Какие будут рекомендации?

Т-Банк
СтатистикаСреднийзадача

Кубик бросают три раза. Какова вероятность, что выпадет хотя бы 2 одинаковых …

Кубик бросают три раза. Какова вероятность, что выпадет хотя бы 2 одинаковых числа?

Т-Банк
СтатистикаЛегкийвопрос

Куда скошено распределение, если известно, что медиана выше среднего

Куда скошено распределение, если известно, что медиана выше среднего?

Т-Банк
A/B тестыЛегкийвопрос

Как изменится длительность A/B теста, если трафик увеличится

Как изменится длительность A/B теста, если трафик увеличится?

Т-Банк
SQLЛегкийвопрос

Какая операция в SQL соединяет две таблицы и удаляет дубликаты

Какая операция в SQL соединяет две таблицы и удаляет дубликаты?

Т-Банк
СтатистикаСреднийзадача

В мае было 100к пользователей, в июне из них зашло 20к, в июле — 30к. Какой м…

В мае было 100к пользователей, в июне из них зашло 20к, в июле — 30к. Какой минимальный и максимальный Rolling Retention?

Т-Банк
СтатистикаЛегкийвопрос

Можно ли считать отличия в A/B тесте статистически значимыми, если p_value = …

Можно ли считать отличия в A/B тесте статистически значимыми, если p_value = 0.07 при уровне значимости alpha = 0.05?

ММосБилет
SQLСреднийзадача

Посчитать количество визитов разработчиков в репозиторий n8n-io/n8n за сентяб…

Посчитать количество визитов разработчиков в репозиторий n8n-io/n8n за сентябрь 2025. Таблица github.events (created_at, actor_login, repo_name). Визит — последовательность событий одного пользователя, где перерыв между событиями не больше 30 минут.

СберЗдоровье
PythonСреднийзадача

Дан датафрейм продаж (event_dt, store, item, amount, price, customer). Провес…

Дан датафрейм продаж (event_dt, store, item, amount, price, customer). Провести агрегированный анализ: для каждого магазина вывести общую сумму продаж, среднюю цену товара, количество уникальных товаров.

СберЗдоровье
PythonСреднийзадача

Рассчитать средний чек для каждого клиента и вывести топ-5 клиентов с наиболь…

Рассчитать средний чек для каждого клиента и вывести топ-5 клиентов с наибольшим средним чеком.

СберЗдоровье
SQLСреднийзадача

Таблицы country (country_name, city) и sales (date, city, income). Вывести ра…

Таблицы country (country_name, city) и sales (date, city, income). Вывести разницу income в % по каждой стране YoY, сравнивая октябрь 2022 с октябрём 2023.

СберЗдоровье
SQLСреднийзадача

Таблица event_log (event_uuid, ts, user_id, event_name). Подготовить запрос д…

Таблица event_log (event_uuid, ts, user_id, event_name). Подготовить запрос для retention анализа: неделя первой установки (Install), количество недель до Consultation, размер когорты, количество уников с Consultation.

СберЗдоровье
КейсыСложныйкейс

DAU вырос, а выручка упала. Что может быть причиной

DAU вырос, а выручка упала. Что может быть причиной?

СберЗдоровье
A/B тестыСложныйкейс

A/B тест: на выдаче врачей в тестовой группе половине врачей повесили шильдик…

A/B тест: на выдаче врачей в тестовой группе половине врачей повесили шильдик «лучший врач». Конверсия в запись на выдаче к любому врачу упала. Предположи, почему.

HH.ru
SQLСреднийзадача

Нужно отправить рассылку всем работодателям hh, у которых не более 5 активных…

Нужно отправить рассылку всем работодателям hh, у которых не более 5 активных вакансий. Таблицы: employer (employer_id, name) и vacancy (vacancy_id, active, employer_id). Вывести имена таких работодателей.

HH.ru
SQLСреднийзадача

Таблицы: search (user_id, search_number, vacancy_id, vacancy_position) и clic…

Таблицы: search (user_id, search_number, vacancy_id, vacancy_position) и clicks (ts, user_id, search_number, vacancy_id). Подсчитать среднюю позицию первых трёх кликов пользователей в каждом поиске. Если кликов < 3, поиск не учитывать.

HH.ru
PythonСреднийзадача

Написать функцию, которая считает факториал от целого неотрицательного числа.…

Написать функцию, которая считает факториал от целого неотрицательного числа. n! = 1 × ... × n, 0! = 1.

HH.ru
PythonЛегкийвопрос

a = [3, 1, 2]. Чем отличается b = a[::-1] от a.reverse()

a = [3, 1, 2]. Чем отличается b = a[::-1] от a.reverse()?

HH.ru
PythonЛегкийвопрос

В чём разница между list, tuple и set в Python

В чём разница между list, tuple и set в Python?

HH.ru
КейсыСложныйкейс

Метрика: среднее от «Отклики» на вакансию. Что с ней может быть не так, как е…

Метрика: среднее от «Отклики» на вакансию. Что с ней может быть не так, как её можно улучшить, что можно предложить вместо неё?

HH.ru
СтатистикаЛегкийвопрос

X распределена по N(0, 1). Чему равна P(X = 0)

X распределена по N(0, 1). Чему равна P(X = 0)?

Детский мир
КейсыЛегкийвопрос

Расскажи про стек аналитика в крупном e-commerce: какие инструменты и платфор…

Расскажи про стек аналитика в крупном e-commerce: какие инструменты и платформы используются?

ВсеИнструменты
КейсыСложныйкейс

Как посчитать долю риелторов от рынка риелторов России на площадке объявлений

Как посчитать долю риелторов от рынка риелторов России на площадке объявлений? Данные: внутренние объявления + данные конкурентов (Циан, Суточно и др.).

ВсеИнструменты
A/B тестыСложныйкейс

Акция в Казани для B2C: промо на первую покупку 30%. A/B теста нет — на 100%.…

Акция в Казани для B2C: промо на первую покупку 30%. A/B теста нет — на 100%. Начало акции совпало с индексацией цен. CR упал в Казани на 5%, в других городах — на 10%. Как оценить эффект акции?

ВсеИнструменты
A/B тестыСложныйкейс

Маркетплейс запускает программу лояльности для продавцов (уровни на основе ме…

Маркетплейс запускает программу лояльности для продавцов (уровни на основе метрик, плюшки: скидка на аналитику, продвижение, вес в ранжировании). Нужно оценить эффект через A/B. Как спроектировать?

ВсеИнструменты
A/B тестыСреднийзадача

Спроектируй дизайн A/B теста для новой модели ранжирования товаров: какие мет…

Спроектируй дизайн A/B теста для новой модели ранжирования товаров: какие метрики, где проводить, как определить длительность.

ВсеИнструменты
SQLСреднийзадача

Таблица employee (id, skill, salary). Написать запрос, который выберет сотруд…

Таблица employee (id, skill, salary). Написать запрос, который выберет сотрудников для бюджета в 500 тыс. руб. с приоритетом на их навыки (чем выше skill, тем приоритетнее).

ВсеИнструменты
SQLСреднийзадача

Таблица employee (id, skill, salary). Написать запрос, который выведет медиан…

Таблица employee (id, skill, salary). Написать запрос, который выведет медиану зарплаты без использования встроенной функции медианы.

ВсеИнструменты
PythonСреднийзадача

Таблица items (item_id, name, price, update_date) — история изменений товаров…

Таблица items (item_id, name, price, update_date) — история изменений товаров. Написать код, который выведет актуальное состояние товаров на дату 01-06-2025.

ННе определено
SQLСреднийзадача

Объясни разницу между ROW_NUMBER(), RANK() и DENSE_RANK(). Напиши запрос, дем…

Объясни разницу между ROW_NUMBER(), RANK() и DENSE_RANK(). Напиши запрос, демонстрирующий отличие на примере таблицы с дубликатами.

ННе определено
SQLСреднийзадача

Напиши SQL-запрос для вычисления медианы через PERCENTILE_CONT. В чём отличие…

Напиши SQL-запрос для вычисления медианы через PERCENTILE_CONT. В чём отличие от PERCENTILE_DISC?

ННе определено
SQLСреднийзадача

Что такое задача Gaps & Islands

Что такое задача Gaps & Islands? Напиши запрос, который находит непрерывные интервалы дат активности пользователя (если пользователь заходил подряд несколько дней — это один «остров»).

ННе определено
SQLЛегкийвопрос

Что такое SCD Type 2 (Slowly Changing Dimension)

Что такое SCD Type 2 (Slowly Changing Dimension)? Как реализовать запрос актуального состояния из таблицы с версионностью?

ННе определено
SQLСреднийзадача

Напиши запрос с использованием LATERAL JOIN (или CROSS APPLY). Когда он полез…

Напиши запрос с использованием LATERAL JOIN (или CROSS APPLY). Когда он полезен и чем отличается от обычного JOIN?

ННе определено
SQLСреднийзадача

Напиши рекурсивный CTE: построй последовательность дат (date spine) за январь…

Напиши рекурсивный CTE: построй последовательность дат (date spine) за январь 2025 года.

ННе определено
SQLСреднийзадача

Напиши запрос для Pivot (строки в столбцы): таблица sales (month, product, re…

Напиши запрос для Pivot (строки в столбцы): таблица sales (month, product, revenue) → вывести продукты как столбцы с выручкой по месяцам.

ННе определено
SQLСреднийзадача

Напиши запрос с условной агрегацией через CASE WHEN и через FILTER (WHERE). В…

Напиши запрос с условной агрегацией через CASE WHEN и через FILTER (WHERE). В чём разница?

ННе определено
SQLЛегкийвопрос

В чём разница между EXISTS и IN в SQL

В чём разница между EXISTS и IN в SQL? Когда что использовать и как это влияет на производительность?

ННе определено
SQLСреднийзадача

Напиши запрос для генерации date spine (календарной таблицы) и используй его …

Напиши запрос для генерации date spine (календарной таблицы) и используй его для заполнения пропусков в данных — покажи дни с нулевыми продажами.

ННе определено
PythonЛегкийвопрос

Объясни типы merge в Pandas: left, right, outer, inner, cross. Когда какой ис…

Объясни типы merge в Pandas: left, right, outer, inner, cross. Когда какой использовать?

ННе определено
PythonЛегкийвопрос

В чём разница между groupby().transform() и groupby().apply() в Pandas

В чём разница между groupby().transform() и groupby().apply() в Pandas? Когда что использовать?

ННе определено
PythonСреднийзадача

Что такое декоратор в Python

Что такое декоратор в Python? Напиши декоратор с аргументами, который повторяет вызов функции N раз и возвращает список результатов.

ННе определено
PythonСреднийзадача

Напиши примеры list comprehension с условиями: фильтрация, вложенные циклы, у…

Напиши примеры list comprehension с условиями: фильтрация, вложенные циклы, условное выражение (тернарный оператор).

ННе определено
PythonСреднийзадача

Как работать с datetime и timedelta в Python

Как работать с datetime и timedelta в Python? Покажи: парсинг строки, разница между датами, добавление интервала.

ННе определено
PythonСреднийзадача

Как читать большие CSV-файлы в Pandas, если они не помещаются в память

Как читать большие CSV-файлы в Pandas, если они не помещаются в память? Покажи подход с chunksize.

ННе определено
PythonЛегкийвопрос

В чём разница между pivot_table и crosstab в Pandas

В чём разница между pivot_table и crosstab в Pandas? Когда что удобнее?

ННе определено
PythonСреднийзадача

Какие стратегии обработки пропусков (NaN) существуют в Pandas

Какие стратегии обработки пропусков (NaN) существуют в Pandas? Покажи fillna с разными подходами.

ННе определено
PythonЛегкийвопрос

Объясни lambda-функции и встроенные map, filter, reduce. Чем они отличаются о…

Объясни lambda-функции и встроенные map, filter, reduce. Чем они отличаются от list comprehension?

ННе определено
PythonСреднийзадача

Покажи возможности f-строк в Python: базовое форматирование, выравнивание, чи…

Покажи возможности f-строк в Python: базовое форматирование, выравнивание, числа с разделителями, отладочный вывод.

ННе определено
СтатистикаЛегкийвопрос

Сформулируй центральную предельную теорему (ЦПТ). Почему она важна для аналитика

Сформулируй центральную предельную теорему (ЦПТ). Почему она важна для аналитика?

ННе определено
СтатистикаЛегкийвопрос

Как правильно интерпретировать доверительный интервал

Как правильно интерпретировать доверительный интервал? Какие распространённые ошибки в интерпретации?

ННе определено
СтатистикаЛегкийвопрос

Что такое p-value

Что такое p-value? Что оно НЕ означает? Назови три распространённых заблуждения.

ННе определено
СтатистикаЛегкийвопрос

Объясни ошибки I и II рода. Приведи примеры из A/B тестирования.

Объясни ошибки I и II рода. Приведи примеры из A/B тестирования.

ННе определено
СтатистикаЛегкийвопрос

Сформулируй закон больших чисел. Чем он отличается от ЦПТ

Сформулируй закон больших чисел. Чем он отличается от ЦПТ?

ННе определено
СтатистикаЛегкийвопрос

Байесовский vs. частотный подход к статистике — в чём разница

Байесовский vs. частотный подход к статистике — в чём разница? Когда какой применяется?

ННе определено
СтатистикаЛегкийвопрос

«Корреляция не означает причинность». Приведи 3 примера ложных корреляций и о…

«Корреляция не означает причинность». Приведи 3 примера ложных корреляций и объясни, почему они возникают.

ННе определено
СтатистикаЛегкийвопрос

Назови ключевые свойства нормального распределения. Что такое правило 68-95-99.7

Назови ключевые свойства нормального распределения. Что такое правило 68-95-99.7?

ННе определено
СтатистикаСреднийзадача

Какие методы обнаружения выбросов существуют

Какие методы обнаружения выбросов существуют? Покажи IQR-метод и z-score на примере.

ННе определено
СтатистикаЛегкийвопрос

Что такое bootstrap

Что такое bootstrap? Когда и зачем его используют?

ННе определено
A/B тестыЛегкийвопрос

Что такое CUPED

Что такое CUPED? Зачем он нужен в A/B тестировании?

ННе определено
A/B тестыЛегкийвопрос

Что такое bucket-тест (AA-тест)

Что такое bucket-тест (AA-тест)? Зачем его проводят перед A/B?

ННе определено
A/B тестыЛегкийвопрос

Что такое SRM (Sample Ratio Mismatch)

Что такое SRM (Sample Ratio Mismatch)? Как его диагностировать и что делать?

ННе определено
A/B тестыСреднийзадача

Как рассчитать MDE (Minimum Detectable Effect) и необходимый размер выборки д…

Как рассчитать MDE (Minimum Detectable Effect) и необходимый размер выборки для A/B теста?

ННе определено
A/B тестыЛегкийвопрос

Что такое проблема множественного тестирования

Что такое проблема множественного тестирования? Как с ней бороться (поправка Бонферрони и другие методы)?

ННе определено
A/B тестыСреднийзадача

Как определить необходимую длительность A/B теста

Как определить необходимую длительность A/B теста? Какие факторы учитывать?

ННе определено
A/B тестыЛегкийвопрос

Что такое метрики-гвардрейлы (guardrail metrics)

Что такое метрики-гвардрейлы (guardrail metrics)? Приведи примеры для e-commerce.

ННе определено
A/B тестыЛегкийвопрос

Что такое стратификация в A/B тестах

Что такое стратификация в A/B тестах? Когда она полезна?

ННе определено
A/B тестыЛегкийвопрос

Что такое novelty effect и primacy effect в A/B тестах

Что такое novelty effect и primacy effect в A/B тестах? Как с ними бороться?

ННе определено
A/B тестыЛегкийвопрос

Зачем проводят AA-тест перед запуском A/B

Зачем проводят AA-тест перед запуском A/B? Какие проверки он включает?

ННе определено
КейсыСложныйкейс

DAU упал на 15% за неделю. Опиши фреймворк анализа: какие шаги предпримешь

DAU упал на 15% за неделю. Опиши фреймворк анализа: какие шаги предпримешь?

ННе определено
КейсыСложныйкейс

Тебе нужно спроектировать систему метрик для новой фичи — рекомендации товаро…

Тебе нужно спроектировать систему метрик для новой фичи — рекомендации товаров на главной странице. Какие метрики выберешь?

ННе определено
КейсыСложныйкейс

Что такое North Star Metric

Что такое North Star Metric? Как выбрать правильную NSM для продукта?

ННе определено
КейсыСложныйкейс

Конверсия воронки покупки упала. Как найти проблемный шаг

Конверсия воронки покупки упала. Как найти проблемный шаг? Опиши подход к анализу воронки.

ННе определено
КейсыСложныйкейс

Как построить retention analysis

Как построить retention analysis? Какие виды retention существуют?

ННе определено
КейсыСложныйкейс

Как рассчитать unit-экономику продукта

Как рассчитать unit-экономику продукта? Когда продукт становится прибыльным?

ННе определено
КейсыСложныйкейс

Как отличить каннибализацию от реального роста при запуске новой фичи

Как отличить каннибализацию от реального роста при запуске новой фичи? Пример: добавили раздел «Популярное» на главную.

ННе определено
КейсыСложныйкейс

Как применять RICE-фреймворк для приоритизации фич

Как применять RICE-фреймворк для приоритизации фич? Приведи пример расчёта.

ННе определено
КейсыСложныйкейс

Данные показывают рост метрики. Как понять — это сезонность или устойчивый тренд

Данные показывают рост метрики. Как понять — это сезонность или устойчивый тренд? Какие методы использовать?

ННе определено
КейсыСложныйкейс

Нужно принять Go/No-Go решение по данным A/B теста. Основная метрика выросла,…

Нужно принять Go/No-Go решение по данным A/B теста. Основная метрика выросла, но одна защитная упала. Как действовать?

ННе определено
SQLЛегкийвопрос

Что такое Data Lineage

Что такое Data Lineage? Зачем аналитику знать происхождение данных?

ННе определено
SQLЛегкийвопрос

Что такое витрина данных (data mart)

Что такое витрина данных (data mart)? Чем отличается от хранилища данных (data warehouse)?

ННе определено
КейсыЛегкийвопрос

Какие продуктовые метрики используются в e-commerce

Какие продуктовые метрики используются в e-commerce? Опиши ключевые группы.

ННе определено
ПоведенческиеЛегкийвопрос

Какие soft-skills важны для аналитика данных

Какие soft-skills важны для аналитика данных? Как эффективно коммуницировать результаты анализа?

ННе определено
SQLЛегкийвопрос

В чём разница между ETL и ELT

В чём разница между ETL и ELT? Когда какой подход предпочтительнее?

ННе определено
SQLЛегкийвопрос

Какие проверки качества данных (data quality checks) нужно внедрять в пайплайн

Какие проверки качества данных (data quality checks) нужно внедрять в пайплайн?

ННе определено
КейсыЛегкийвопрос

Какие принципы хорошего дашборда

Какие принципы хорошего дашборда? Что делает дашборд полезным vs. бесполезным?

ННе определено
ПоведенческиеЛегкийвопрос

Как работать со стейкхолдерами: PM, разработчиками, руководством

Как работать со стейкхолдерами: PM, разработчиками, руководством? Какие типичные ошибки?

ННе определено
SQLЛегкийвопрос

Что такое технический долг в данных (data tech debt)

Что такое технический долг в данных (data tech debt)? Приведи примеры и способы борьбы.

ННе определено
SQLЛегкийвопрос

Зачем и как документировать аналитические пайплайны

Зачем и как документировать аналитические пайплайны? Какие инструменты помогают?

Avito
КейсыСложныйкейс

Дизайн A/B теста для рекомендательной системы

Продакт просит запустить A/B тест для нового алгоритма рекомендаций. Как ты спроектируешь эксперимент? Опиши метрики, контрольную/тестовую группы, длительность теста и критерии остановки.

Avito
КейсыСложныйкейс

Диагностика падения ключевой метрики

Ты замечаешь, что DAU упал на 15% за последние 3 дня. Опиши, как диагностируешь проблему: с чего начнёшь, какие гипотезы проверишь и в каком порядке.

Avito
КейсыСложныйкейс

Метрики качества поиска на маркетплейсе

Ты аналитик на маркетплейсе. Задача: оценить качество алгоритма поиска. Предложи набор метрик и поясни, как бы ты их собирал.

Avito
КейсыСложныйкейс

Влияние промокодов на LTV клиента

Маркетинг хочет понять, влияют ли промокоды положительно на LTV или просто переключают уже лояльных пользователей на скидку. Как подойдёшь к анализу?

Avito
КейсыСложныйкейс

Приоритизация продуктовых фич на основе данных

У команды 10 идей для улучшения приложения, но спринт только на 3 фичи. Продакт просит тебя помочь приоритизировать на основе данных. Какой подход предложишь?

Базовые вопросы
SQLЛегкийзадача

Пользователи без покупок

Есть таблицы `users(id, name)` и `orders(id, user_id, amount)`. Напиши запрос, который вернёт всех пользователей, у которых ещё не было ни одного заказа.

Базовые вопросы
SQLЛегкийзадача

Процент от общей суммы

Есть таблица `sales(category, revenue)`. Выведи каждую категорию, её выручку и долю от общей выручки (в процентах, округлённую до 2 знаков).

Базовые вопросы
SQLСреднийзадача

Топ-3 товара в каждой категории

Таблица `products(id, category, name, revenue)`. Выведи топ-3 товара по выручке в каждой категории. При одинаковой выручке порядок произвольный.

Базовые вопросы
SQLСреднийзадача

Нарастающий итог по дням

Таблица `daily_sales(sale_date DATE, amount NUMERIC)`. Выведи для каждого дня нарастающий итог выручки (с начала периода). Дни отсортированы по возрастанию.

Базовые вопросы
SQLСреднийзадача

Разница между текущей и предыдущей строкой (LAG)

Таблица `metrics(dt DATE, value INT)` содержит ежедневные значения метрики. Выведи дату, значение и изменение по сравнению с предыдущим днём (NULL, если предыдущей строки нет).

Базовые вопросы
SQLСреднийзадача

Сотрудники с зарплатой выше менеджера

Таблица `employees(id, name, salary, manager_id)`. `manager_id` ссылается на `id` в той же таблице. Найди всех сотрудников, чья зарплата выше зарплаты их непосредственного менеджера.

Базовые вопросы
SQLСреднийзадача

Дубликаты в таблице

Таблица `emails(id, email)`. Найди все email-адреса, которые встречаются более одного раза, и покажи, сколько раз каждый встречается.

Базовые вопросы
SQLСложныйзадача

Медиана без функции MEDIAN

Таблица `salaries(id, amount)`. Найди медианную зарплату, не используя встроенную функцию MEDIAN (она есть не во всех СУБД).

Базовые вопросы
SQLСложныйзадача

Последовательные дни активности

Таблица `logins(user_id INT, login_date DATE)`. Найди пользователей, которые заходили 7 и более дней подряд. Верни `user_id` и максимальную длину непрерывной серии.

Базовые вопросы
SQLСложныйзадача

Вторая по величине зарплата

Таблица `employees(id, salary)`. Напиши запрос, который вернёт вторую по величине уникальную зарплату. Если такой нет — верни NULL.

Базовые вопросы
PythonЛегкийзадача

FizzBuzz

Напиши функцию `fizzbuzz(n: int) -> list[str]`, которая возвращает список строк от 1 до n: - "Fizz" если число делится на 3 - "Buzz" если делится на 5 - "FizzBuzz" если делится на 15 - иначе строку с самим числом

Базовые вопросы
PythonЛегкийзадача

Анаграммы

Напиши функцию `are_anagrams(s1: str, s2: str) -> bool`, которая возвращает True, если строки являются анаграммами (игнорируя регистр и пробелы).

Базовые вопросы
PythonЛегкийзадача

Генератор Фибоначчи

Напиши генератор `fib()`, который бесконечно генерирует числа Фибоначчи: 0, 1, 1, 2, 3, 5, 8, …

Базовые вопросы
PythonСреднийзадача

Two Sum

Напиши функцию `two_sum(nums: list[int], target: int) -> tuple[int, int]`, которая возвращает индексы двух чисел из списка, дающих в сумме `target`. Гарантируется, что ровно одно решение существует.

Базовые вопросы
PythonСреднийзадача

Flatten вложенного списка

Напиши функцию `flatten(lst)`, которая рекурсивно разворачивает произвольно вложенный список в плоский. Например: `flatten([1, [2, [3, 4]], 5])` → `[1, 2, 3, 4, 5]`.

Базовые вопросы
PythonСреднийзадача

Подстрока без повторяющихся символов

Напиши функцию `length_of_longest_substring(s: str) -> int`, возвращающую длину самой длинной подстроки без повторяющихся символов.

Базовые вопросы
PythonСреднийзадача

Декоратор для кэширования (memorize)

Напиши декоратор `memorize`, который кэширует результаты вызова функции по её аргументам.

Базовые вопросы
PythonСреднийзадача

Подсчёт вхождений в вложенной структуре

Напиши функцию `count_occurrences(data, target)`, которая считает, сколько раз значение `target` встречается в произвольно вложенной структуре из списков и словарей.

Базовые вопросы
PythonСложныйзадача

LRU Cache

Реализуй класс `LRUCache(capacity: int)` с методами: - `get(key) -> int` — вернуть значение или -1 - `put(key, value)` — добавить; при превышении `capacity` удалить наименее недавно использованный элемент.

Базовые вопросы
PythonСложныйзадача

Группировка анаграмм

Напиши функцию `group_anagrams(words: list[str]) -> list[list[str]]`, которая группирует слова-анаграммы вместе.

Базовые вопросы
СтатистикаЛегкийвопрос

Что такое p-value

Объясни, что такое p-value. Как правильно его интерпретировать, и что является распространённой ошибкой при интерпретации?

Базовые вопросы
СтатистикаЛегкийвопрос

Среднее vs. медиана: когда что использовать

В каких случаях медиана предпочтительнее среднего, а в каких — наоборот? Приведи практические примеры из аналитики.

Базовые вопросы
СтатистикаЛегкийвопрос

Ошибки I и II рода

Что такое ошибки первого и второго рода в статистике? Объясни на примере A/B теста.

Базовые вопросы
СтатистикаСреднийвопрос

Центральная предельная теорема (ЦПТ)

Сформулируй центральную предельную теорему. Почему она важна для A/B тестирования и анализа данных?

Базовые вопросы
СтатистикаСреднийвопрос

Теорема Байеса и условная вероятность

Объясни теорему Байеса. Задача: тест на болезнь даёт ложноположительный результат в 5% случаев и ложноотрицательный в 1%. Болеет 0.1% населения. Какова вероятность болезни при положительном тесте?

Базовые вопросы
СтатистикаСреднийвопрос

Bootstrap-метод

Что такое bootstrap-метод? Когда его применяют и в чём его ключевое преимущество перед параметрическими методами?

Базовые вопросы
СтатистикаСреднийвопрос

Множественное тестирование

Что такое проблема множественного тестирования? Назови два способа корректировки и объясни разницу между ними.

Базовые вопросы
СтатистикаСреднийвопрос

Проверка нормальности распределения

Как проверить, нормально ли распределены данные? Назови минимум два теста и один визуальный метод.

Базовые вопросы
СтатистикаСложныйвопрос

ANOVA: дисперсионный анализ

Что такое ANOVA (дисперсионный анализ) и когда её применяют? Чем однофакторная ANOVA отличается от t-теста?

Базовые вопросы
СтатистикаСложныйвопрос

Доверительный интервал: что он означает

Объясни, что означает 95% доверительный интервал. Какая интерпретация корректна, а какая — ошибочна?

Базовые вопросы
A/B тестыЛегкийвопрос

Что такое MDE (минимальный детектируемый эффект)

Что такое MDE в A/B тестировании? Как его задают и от чего он зависит?

Базовые вопросы
A/B тестыЛегкийвопрос

Единица рандомизации в A/B тесте

Что такое единица рандомизации в A/B тесте? Какие варианты бывают и как выбрать правильный?

Базовые вопросы
A/B тестыСреднийвопрос

Peeking problem в A/B тестах

Что такое peeking problem (проблема «подглядывания») в A/B тестировании? К каким последствиям приводит?

Базовые вопросы
A/B тестыСреднийвопрос

SRM (Sample Ratio Mismatch)

Что такое SRM в A/B тесте? Как его обнаружить и каковы основные причины?

Базовые вопросы
A/B тестыСреднийвопрос

Эффект новизны в A/B тестах

Что такое эффект новизны (novelty effect) в A/B тестировании? Как с ним бороться?

Базовые вопросы
A/B тестыСреднийвопрос

Guardrail-метрики

Что такое guardrail-метрики в A/B тестировании? Приведи примеры и объясни зачем они нужны.

Базовые вопросы
A/B тестыСреднийвопрос

Байесовский vs. частотный подход в A/B

В чём разница между байесовским и частотным (frequentist) подходами к A/B тестированию? Назови плюсы и минусы каждого.

Базовые вопросы
A/B тестыСложныйвопрос

CUPED: снижение дисперсии в A/B тестах

Что такое CUPED (Controlled-experiment Using Pre-Experiment Data) и как он повышает мощность A/B теста?

Базовые вопросы
A/B тестыСложныйвопрос

Сетевые эффекты в A/B тестах

Почему стандартный A/B тест ненадёжен при наличии сетевых эффектов? Как адаптировать дизайн эксперимента?

Базовые вопросы
A/B тестыСложныйвопрос

Тестирование редких событий

Первичная метрика — конверсия в покупку (0.5%). Как провести A/B тест при таком низком baseline? Какие альтернативные подходы существуют?

Базовые вопросы
КейсыЛегкийкейс

Рост отказов на шаге оплаты

Конверсия со страницы оплаты упала на 10% за последние 3 дня. Как будешь диагностировать проблему?

Базовые вопросы
КейсыСреднийкейс

Падение retention у новых пользователей

7-дневный Retention новых пользователей упал с 35% до 28% за последний месяц. При этом DAU стабилен. Как подойдёшь к анализу?

Базовые вопросы
КейсыСреднийкейс

Выбор North Star метрики

Ты аналитик в стриминговом сервисе. Продакт просит помочь выбрать North Star метрику. Предложи кандидатов и обоснуй выбор.

Базовые вопросы
КейсыСреднийкейс

Оценка экономического эффекта фичи

Фича «Быстрая повторная покупка» была запущена по результатам A/B теста: +3% конверсии в повторную покупку. Как перевести это в денежный эффект?

Базовые вопросы
КейсыСреднийкейс

Метрики жалуются пользователи, но данные в норме

В поддержку поступают жалобы на медленную загрузку приложения. Но средняя скорость в мониторинге в норме — 1.2 сек. Как объяснишь расхождение и что проверишь?

Базовые вопросы
КейсыСреднийкейс

Аномальный рост одной когорты

Одна когорта пользователей показывает в 2 раза выше Retention, чем остальные. Как это объяснить и что делать?

Базовые вопросы
КейсыСложныйкейс

Каннибализация: новая фича ест старую

Новый блок рекомендаций «Для вас» показал в A/B тесте +5% к общему CTR. Но команда контента заметила, что просмотры из каталога упали на 7%. Что произошло и как принять решение?

Базовые вопросы
КейсыСложныйкейс

Построение модели предсказания оттока

Тебе нужно построить модель предсказания оттока пользователей. Опиши процесс: от постановки задачи до внедрения.

Базовые вопросы
КейсыСложныйкейс

Долгосрочный эффект A/B теста на LTV

A/B тест показал нейтральный результат за 2 недели. Но команда подозревает, что эффект фичи проявляется в долгосрочной перспективе. Как оценить долгосрочный эффект?

Базовые вопросы
КейсыСложныйкейс

Система рекомендаций: с чего начать

Стартап просит тебя с нуля построить систему рекомендаций для маркетплейса. Опиши архитектуру и как двигаться итерационно.

Базовые вопросы
SQLЛегкийвопрос

Data Warehouse vs. Data Lake

В чём разница между Data Warehouse и Data Lake? Когда что использовать?

Базовые вопросы
SQLЛегкийвопрос

ETL vs. ELT: в чём разница

Объясни разницу между ETL и ELT-подходами. Когда применяется каждый?

Базовые вопросы
SQLЛегкийвопрос

Нормализация баз данных

Что такое нормализация базы данных? Объясни 1NF, 2NF, 3NF на простых примерах.

Базовые вопросы
СтатистикаСреднийвопрос

Precision и Recall

Объясни precision и recall. Когда важнее одно, а когда другое? Приведи примеры из data-аналитики.

Базовые вопросы
PythonСреднийвопрос

Обработка пропущенных значений

Какие есть подходы к обработке пропущенных значений? Как выбрать правильный?

Базовые вопросы
КейсыСреднийвопрос

Метрики для оценки рекомендательной системы

Какие метрики используют для оценки качества рекомендательных систем? Объясни разницу между offline и online оценкой.

Базовые вопросы
КейсыСреднийвопрос

Как строить дашборд для стейкхолдеров

Продакт просит тебя сделать дашборд для еженедельного совещания. Как подойдёшь к его построению?

Базовые вопросы
СтатистикаСреднийвопрос

Supervised vs. Unsupervised Learning

В чём разница между supervised и unsupervised learning? Приведи по 2–3 примера задач из аналитики.

Базовые вопросы
СтатистикаСложныйвопрос

Overfitting: что такое и как бороться

Что такое переобучение (overfitting)? Как его обнаружить и какие методы борьбы существуют?

Базовые вопросы
СтатистикаСложныйвопрос

Оценка классификации на несбалансированных данных

Датасет: 97% нормальных транзакций, 3% мошеннических. Accuracy = 97%. Насколько хороша модель? Какие метрики использовать?

Базовые вопросы
ПоведенческиеЛегкийвопрос

Расскажи о себе

Расскажи о себе. (Классический открывающий вопрос HR-скрининга)

Базовые вопросы
ПоведенческиеЛегкийвопрос

Почему аналитика данных

Почему ты выбрал профессию аналитика данных? Что тебя в ней привлекает?

Базовые вопросы
ПоведенческиеЛегкийвопрос

Где видишь себя через 3 года

Где вы видите себя через 3 года?

Базовые вопросы
ПоведенческиеСреднийвопрос

Как работаешь с неопределёнными задачами

Расскажи, как ты работаешь, когда задача сформулирована нечётко или данных недостаточно?

Базовые вопросы
ПоведенческиеСреднийвопрос

Конфликт с коллегой

Расскажи о случае, когда у тебя возник конфликт с коллегой или членом команды. Как ты его разрешил?

Базовые вопросы
ПоведенческиеСреднийвопрос

Задача, где данные не дали ответа

Приведи пример задачи, где данных было недостаточно, чтобы дать однозначный ответ. Что ты сделал?

Базовые вопросы
ПоведенческиеСреднийвопрос

Самый сложный аналитический проект

Расскажи о самом сложном проекте в твоей карьере. Что делало его сложным и как ты с этим справился?

Базовые вопросы
ПоведенческиеСреднийвопрос

Расстановка приоритетов

Как ты расставляешь приоритеты, когда у тебя несколько задач с одинаково высоким приоритетом?

Базовые вопросы
ПоведенческиеСложныйвопрос

Убеждение команды через данные

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

Базовые вопросы
ПоведенческиеСложныйвопрос

Провальный проект: чему научил

Расскажи о проекте, который пошёл не по плану или провалился. Что ты из него вынес?

WB
PythonСреднийзадача

Код-ревью: функция подсчёта элементов списка

Нужно написать функцию, которая проходит по списку и собирает для каждого элемента количество раз, которое он встречается. Если элемент входит в список `dont_collect`, то он не учитывается. Задачу назначили джуну. Он сделал её и отправил тебе на ревью. Он утверждает, что проверил функцию — она отлично работает. Он также написал для неё тесты (они действительно проходят). Проведи ревью его кода. ```python def CollectStatisticsWODC(list, dont_collect=[2, 7, 14, 31]): RESULT = dict() for el in list: skip = False for ele in dont_collect: if el == ele: skip = True if skip == False and el not in RESULT: RESULT[el] = 1 elif skip == False and el in RESULT: RESULT[el] = RESULT[el] + 1 return RESULT if __name__ == '__main__': list = [1, 1, 1, 2, '3', '3', 4, 7] assert CollectStatisticsWODC(list) == {1: 3, '3': 2, 4: 1} print("GOOD") list = [] assert CollectStatisticsWODC(list) == {} print("GOOD") list = [2, 2, 2, 7, 14, 31] assert CollectStatisticsWODC(list) == {} print("GOOD") print("ALL TESTS PASSED!") ```

ННе определено
SQLЛегкийзадача

Пятёрки у учеников, у которых меньше 10 двоек

Дана таблица `journal` с колонками `fio` (ученик) и `mark` (оценка). Посчитай количество пятёрок у каждого ученика, у которого меньше 10 двоек.

ННе определено
SQLСреднийзадача

LEFT JOIN с дубликатами и NULL: что вернёт запрос?

Есть две таблицы `t1` и `t2`. Что вернёт следующий запрос? ```sql select * from t1 left join t2 on t1.num1 = t2.num2 ``` ``` t1.num1: 1, 2, 2, 3, 3, 4, null, null t2.num2: 1, 2, 2, 3, 5, null, null ```

ННе определено
SQLСреднийзадача

Чётные и нечётные числа в два столбца

Есть таблица `t` с одним столбцом из чисел, упорядоченным по возрастанию. Нужно получить таблицу с двумя столбцами — нечётные и чётные числа из входной таблицы, каждый столбец по возрастанию. В общем случае количество чётных и нечётных не равно, т.е. могут потребоваться NULL. Вход: ``` t.num 1 2 3 4 5 6 7 9 ``` Ожидаемый результат: ``` odd | even ----+----- 1 | 2 3 | 4 5 | 6 7 | null 9 | null ```

ННе определено
SQLСреднийзадача

Сумма транзакций за предыдущий день и за всё время

Есть таблица с агрегатами — суммами транзакций клиентов за конкретный день. ``` client trans_date trans_sum 1 15.09.2020 232 1 16.09.2020 543 1 17.09.2020 123 1 18.09.2020 553 2 15.09.2020 234 2 16.09.2020 634 2 18.09.2020 234 2 19.09.2020 663 ``` 1. Напиши запрос, который для каждой строки покажет сумму транзакций клиента за предыдущий **календарный** день. 2. Напиши запрос, который подтянет к каждой строке сумму транзакций данного клиента за всё время.

ННе определено
PythonЛегкийзадача

Отфильтровать простые числа из списка

Есть список `numbers = [1, 2, ..., 1000]`. Напиши функцию, которая оставит в нём только простые числа.

ННе определено
СтатистикаСреднийзадача

Вероятность выкинуть все 6 граней за 6 бросков

Кубик кидается 6 раз подряд. Какова вероятность, что за эти 6 бросков будут выкинуты все 6 значений?

ННе определено
СтатистикаСреднийзадача

Перебрасывать ли кубик? Оптимальная стратегия

Бросили кубик. Стоит ли перекидывать, если хотим получить бОльшее число? А если есть возможность перебросить два раза — какая стратегия оптимальна? (задача на матожидание)

Avito
КейсыЛегкийзадача

Две бригады: за сколько дней вторая закончит работу одна

Первая бригада может выполнить весь заказ за 6 дней, а вторая — за 9 дней. Первые 2 дня они работали вместе, после чего первая бригада уехала на другой объект. За сколько дней вторая бригада закончит оставшуюся работу одна? Варианты ответа: 2 · 3 · 3,5 · 4

Avito
СтатистикаСреднийзадача

Первый работающий сервер окажется вторым по счёту

Есть 3 сервера, каждый работает с вероятностью 0.8. Их запускают в случайном порядке по одному. Найти вероятность того, что первый работающий сервер окажется вторым в порядке запуска. Варианты ответа: 0,08 · 0,125 · 0,128 · 0,16

Avito
СтатистикаЛегкийзадача

Пользователь зарегистрируется, но не подпишется на рассылку

Вероятность того, что пользователь зарегистрируется, равна 0,5. Вероятность того, что пользователь подпишется на рассылку, равна 0,2. Считаем события независимыми. Какова вероятность, что пользователь зарегистрируется, но не подпишется на рассылку? Варианты ответа: 0,3 · 0,4 · 0,5 · 0,6

Avito
СтатистикаЛегкийзадача

Вероятность, что все 3 прибора не пройдут проверку

На заводе каждый изготовленный прибор проходит автоматическую проверку, которая срабатывает независимо для каждого прибора. Вероятность того, что прибор проходит проверку, равна 0.8. Проверяют 3 прибора. Какова вероятность того, что все 3 прибора НЕ пройдут проверку? Варианты ответа: 0,008 · 0,125 · 0,488 · 0,6

Avito
СтатистикаСреднийзадача

Две карточки А не окажутся соседними за круглым столом

На круглом столе случайно раскладывают 5 карточек: 2 с буквой А и 3 с буквой В. Какова вероятность того, что две карточки с буквой А не окажутся соседними? Первая и последняя карточки считаются соседними. Варианты ответа: 0,5 · 0,6 · 0,7 · 0,8

Avito
СтатистикаЛегкийзадача

Сколькими способами выбрать барабанщика и клавишника из 7 человек

В музыкальной группе есть 7 участников. Нужно выбрать барабанщика и клавишника так, чтобы один человек не мог занимать две роли одновременно. Сколькими способами можно распределить роли? Варианты ответа: 21 · 28 · 35 · 42

Avito
СтатистикаЛегкийзадача

Сколько трёхзначных кодов без повторов не начинаются с нуля

Сколько различных трёхзначных кодов можно составить, используя цифры от 0 до 9, если цифры в коде не повторяются и код не может начинаться с 0? Варианты ответа: 576 · 648 · 720 · 810

Avito
СтатистикаЛегкийзадача

Математическое ожидание по эмпирическому распределению

По наблюдениям за 50 часов составили эмпирическое распределение случайной величины X — числа онлайн-заказов за час. Найдите математическое ожидание X. | X | Частота | |---|---------| | 0 | 5 | | 1 | 20 | | 2 | 15 | | 3 | 10 | | **Итого** | **50** | Варианты ответа: 1,4 · 1,6 · 1,8 · 2,0

Avito
СтатистикаСреднийзадача

E(X) и D(X) для числа сундуков с редким предметом

В игре персонаж открывает 12 сундуков. В каждом сундуке независимо от других с вероятностью 0.2 находится редкий предмет. Пусть X — число сундуков, в которых оказался редкий предмет. Найдите математическое ожидание и дисперсию X. Варианты ответа: - E(X) = 2,4; D(X) = 1,92 - E(X) = 2,4; D(X) = 2,4 - E(X) = 9,6; D(X) = 1,92 - E(X) = 12; D(X) = 0,2

Avito
СтатистикаЛегкийзадача

95% доверительный интервал для среднего времени сборки

В интернет-магазине измерили время сборки 100 заказов. Среднее время сборки по выборке составило 30 минут. Известно, что стандартное отклонение времени сборки в генеральной совокупности равно 15 минут. Определите приближённый 95% доверительный интервал для среднего времени сборки заказа. Используйте z ≈ 2. Варианты ответа: [28; 31] · [15; 45] · [27; 33] · [24; 36]

Avito
СтатистикаСреднийзадача

Проверка доли: отклонить ли утверждение сервиса про 5% ошибок

Онлайн-сервис заявляет, что доля пользователей, столкнувшихся с ошибкой входа, не превышает 5%. Нужно проверить это против предположения, что доля таких пользователей больше 5%. В выборке из 400 пользователей 24 столкнулись с ошибкой входа. При уровне значимости 0.05 критическое значение равно примерно 1.64. Нужно ли отклонить утверждение сервиса? Варианты ответа: - Да, потому что 24 пользователя — это много - Нет, потому что z меньше критического значения - Да, потому что 6% больше 5% - Нет, потому что α равно 0.05

Avito
СтатистикаЛегкийвопрос

Ошибка I рода на примере клинического исследования

Клиника проверяет новый препарат. Нулевая гипотеза: препарат не снижает давление лучше обычного лечения. Если результаты пациентов достаточно хорошие, нулевую гипотезу отвергают и признают препарат более эффективным. Какое утверждение описывает ошибку I рода? Варианты ответа: - Препарат признали эффективным, хотя он не лучше обычного лечения - Препарат признали неэффективным, хотя он действительно лучше - Давление пациентов измерили слишком поздно - В исследовании участвовало слишком мало пациентов

Avito
A/B тестыСреднийвопрос

Менеджер: «p-value меньше порога — можно катить на всех»

Маркетплейс тестирует новый алгоритм сортировки товаров в поиске. Менеджер смотрит на результат эксперимента и говорит: «p-value получилось меньше выбранного порога, значит можно сразу выкатывать алгоритм на всех пользователей». Выберите все верные утверждения. Варианты ответа (несколько верных): - Менеджер прав только в части статистической значимости результата - Перед решением о запуске нужно посмотреть размер эффекта и возможные побочные метрики - Если p-value маленькое, бизнес-эффект автоматически считается большим - Малое p-value означает, что вероятность ошибки в решении равна нулю

Avito
A/B тестыЛегкийвопрос

Интерпретация p-value = 0.04 при α = 0.05

В онлайн-магазине тестируют новый дизайн страницы товара. Цель — понять, увеличивает ли он конверсию в покупку. По результатам A/B-теста получили p-value = 0.04 при уровне значимости α = 0.05. Выберите все верные утверждения. Варианты ответа (несколько верных): - Результат статистически значим, потому что p-value меньше α - Нулевую гипотезу об отсутствии различий следует отвергнуть - Результат не является статистически значимым, так как p-value меньше α - p-value = 0.04 означает, что вероятность отсутствия эффекта от нового дизайна равна 4%

Avito
A/B тестыСреднийвопрос

Баннер запустили на всех: какая ошибка могла произойти

Нулевая гипотеза: новый баннер не повышает кликабельность. По результатам A/B-теста команда решила, что новый баннер статистически значимо повышает кликабельность, и запустила его для всех пользователей. Что произошло? Варианты ответа: - Произошла ошибка I рода - Произошла ошибка II рода - Произошла ошибка в формулировке нулевой гипотезы - Не хватает данных

Avito
СтатистикаСреднийзадача

Определите FN и Recall по результатам модели оттока

Маркетплейс использует модель, которая предсказывает, уйдёт ли продавец с платформы в следующем месяце. Положительный класс — «продавец уйдёт». На тестовой выборке из 200 продавцов модель дала такие результаты: - модель предсказала «уйдёт» для 50 продавцов, из них действительно ушли 30; - модель предсказала «не уйдёт» для 150 продавцов, из них действительно ушли 20. Определите FN и Recall. Варианты ответа: - FN = 20; Recall = 0,4 - FN = 20; Recall = 0,6 - FN = 30; Recall = 0,6 - FN = 130; Recall = 0,8

Avito
СтатистикаЛегкийвопрос

Какую метрику контролировать при ручной проверке заявок

Команда обучила модель, которая автоматически помечает заявки на кредит как подозрительные и отправляет их на ручную проверку. Проверка каждой заявки занимает время сотрудников, поэтому важно, чтобы среди заявок, которые модель пометила как подозрительные, действительно было как можно больше мошеннических. Какую метрику в первую очередь стоит контролировать? Варианты ответа: Precision · Recall · Accuracy · MSE

Avito
SQLЛегкийвопрос

Вывести всех клиентов и их заказы, включая клиентов без заказов

Нужно вывести всех клиентов и их заказы. Клиенты без заказов тоже должны остаться. Выберите один верный вариант ответа. Фрагмент данных: ``` customers orders customer_id | name order_id | customer_id | amount 1 | Анна 10 | 1 | 1200 2 | Борис 11 | 1 | 800 3 | Вера 12 | 2 | 3000 ``` Варианты ответа: - `customers LEFT JOIN orders ON customer_id` - `customers INNER JOIN orders ON customer_id` - `orders LEFT JOIN customers ON customer_id` - `customers JOIN orders ON order_id`

Avito
SQLЛегкийвопрос

Количество уникальных пользователей по каждой платформе

Нужно посчитать количество уникальных пользователей по каждой платформе. Выберите один верный вариант ответа. Фрагмент данных: ``` order_id | city | customer_id | amount | status 1 | Москва | 101 | 1000 | paid 2 | Москва | 102 | 2000 | paid 3 | Казань | 103 | 500 | cancelled 4 | Казань | 104 | 3000 | paid ``` Варианты ответа: - `GROUP BY platform, COUNT(DISTINCT customer_id)` - `GROUP BY customer_id, COUNT(platform)` - `COUNT(customer_id)` без `GROUP BY` - `GROUP BY platform, SUM(customer_id)`

Avito
PythonЛегкийвопрос

Города, отсортированные по общей выручке (pandas)

Какой вариант кода вернёт список городов, отсортированных по общей выручке по убыванию? ```python import pandas as pd df = pd.DataFrame({ 'city': ['Moscow', 'Kazan', 'Moscow', 'Sochi', 'Kazan', 'Sochi'], 'category': ['food', 'food', 'tech', 'food', 'tech', 'tech'], 'revenue': [120, 80, 300, 90, 200, 150] }) ``` Варианты ответа: - `df.sort_values('revenue', ascending=False)['city'].tolist()` - `df.groupby('city')['revenue'].sum().sort_values(ascending=False).index.tolist()` - `df.groupby('category')['revenue'].sum().sort_values(ascending=False).index.tolist()` - `df.groupby('city')['revenue'].mean().sort_values(ascending=False).index.tolist()`

Avito
PythonСреднийзадача

Уникальные страницы каждой сессии в алфавитном порядке

Есть строка с просмотренными страницами по трём сессиям. Сессии разделены символом `#`, страницы внутри сессии разделены символом `/`. Какой вариант кода вернёт строку с уникальными страницами каждой сессии в алфавитном порядке? Страницы внутри сессии должны быть соединены через `,`, а сессии — через `|`. ```python s = 'home/catalog/home#cart/home/cart#search/product/search/home' ``` Варианты ответа: - `'|'.join(','.join(session.split('/')) for session in s.split('#'))` - `'|'.join(','.join(sorted(set(s.split('/')))) for session in s.split('#'))` - `'|'.join(','.join(sorted(set(session.split('/')))) for session in s.split('#'))` - `'|'.join(sorted(set(session.split('/'))) for session in s.split('#'))`

Avito
PythonСреднийзадача

Подсчёт метрик с отрицательным итоговым изменением по группам

**Кодинг-задача.** На вход программе подаётся одна строка с записями об изменении метрик по группам. Каждая запись имеет формат `group_id, metric_id, delta`, записи разделены точкой с запятой `;`. | Поле | Описание | |---|---| | `group_id` | числовой идентификатор группы | | `metric_id` | числовой идентификатор метрики | | `delta` | изменение значения метрики (может быть положительным, отрицательным или нулевым) | **Что нужно сделать.** Для каждой группы посчитать итоговое изменение по каждой метрике: для одинаковой пары `group_id + metric_id` сложить все значения `delta`. После этого для каждой группы определить количество метрик, у которых итоговое изменение меньше нуля. **Важные условия:** - если одна и та же метрика встречается в группе несколько раз, её изменения нужно сложить; - учитываются только метрики, у которых итоговая сумма `delta` меньше 0; - группы должны быть выведены в порядке их первого появления во входной строке; - результаты по группам соединяются через `;`. **Формат ввода** — одна строка: `group_id, metric_id, delta; group_id, metric_id, delta; ...` **Формат вывода** — одна строка: `group_id, count; group_id, count; ...`, где `count` — количество метрик группы с отрицательным итоговым изменением. **Пример.** Ввод: `1, 101, -5; 1, 102, 3; 2, 101, -1; 1, 101, 2; 2, 103, 4` → Вывод: `1, 1; 2, 1` Заготовка кода: ```python import sys def read_line(): return sys.stdin.readline().rstrip('\n') def write(value): sys.stdout.write(str(value)) def writeln(value=''): sys.stdout.write(str(value) + '\n') def solve(): pass solve() ```

Avito
PythonСреднийзадача

Среднее значение по группе после сортировки

**Кодинг-задача.** Даны две строки одинаковой длины. Первая содержит коды групп через запятую, вторая — целые значения через запятую. Нужно: 1. сформировать DataFrame с колонками `group` и `value`; 2. отсортировать строки по колонке `group` по возрастанию; 3. для каждой строки добавить значение среднего `value` внутри её группы; 4. вернуть полученные средние значения в порядке итогового DataFrame; 5. средние значения округлить до целых чисел; 6. значения в ответе соединить через `,`. Если в группе несколько строк, каждая строка этой группы получает одно и то же среднее значение. **Формат ввода** — две строки: `group_1, group_2, group_3, ...` и `value_1, value_2, value_3, ...` **Формат вывода** — одна строка с целыми числами, соединёнными через `,`. **Пример.** Ввод: `2, 1, 2, 1, 2` и `10, 20, 30, 40, 50` → Вывод: `30, 30, 30, 30, 30` Заготовка кода: ```python import sys def read_line(): return sys.stdin.readline().rstrip('\n') def writeln(value=''): sys.stdout.write(str(value) + '\n') def solve(): pass solve() ```

WB
PythonЛегкийвопрос

Основные компоненты Apache Airflow

Назови основные компоненты Apache Airflow и объясни, за что отвечает каждый.

WB
PythonЛегкийвопрос

Где физически выполняется Python-код задачи в Airflow

Где выполняется Python-код задачи в Airflow?

WB
PythonЛегкийвопрос

Как задать зависимости между тасками внутри DAG

Как организовать зависимости между тасками в DAG?

WB
PythonСреднийвопрос

Условный запуск таски: B или C в зависимости от результата A

Есть таска A. В зависимости от её результата нужно запустить либо таску B, либо таску C. Как это реализовать в Airflow?

WB
PythonСреднийвопрос

Механизмы зависимостей между разными DAG-ами

Какие есть механизмы организации зависимостей между разными DAG-ами?

WB
PythonЛегкийвопрос

Параметр catchup в Airflow

Что такое параметр catchup в Airflow и как он работает?

WB
PythonСреднийвопрос

Типы executor-ов в Airflow

Какие бывают типы executor-ов в Airflow?

WB
PythonСложныйвопрос

CeleryExecutor против KubernetesExecutor

В чём разница между CeleryExecutor и KubernetesExecutor? Когда что выбирать?

WB
PythonСреднийвопрос

Голодание тасок (task starvation) в Airflow

Что такое голодание тасок (task starvation) в Airflow?

WB
PythonСложныйвопрос

Starvation при двух доменах в пиковое окно 8–10 утра

У вас два домена (две команды), которые пишут DAG-и в один инстанс Airflow. Оба грузят данные в пиковый период с 8 до 10 утра, и задачи начинают голодать. Как решать проблему?

WB
PythonЛегкийвопрос

Что такое идемпотентный DAG

Что такое идемпотентный DAG и зачем это свойство нужно?

WB
SQLЛегкийвопрос

Функция sumIf и комбинаторы агрегатных функций в ClickHouse

Есть ли в ClickHouse функция `sumIf`? Что она делает и чем отличается от обычного `sum` с условием?

WB
SQLСреднийвопрос

Движок MergeTree в ClickHouse: что это и зачем

Что такое MergeTree в ClickHouse и зачем он нужен?

WB
SQLСреднийвопрос

Что такое part (часть) в ClickHouse

Что такое part (часть) в ClickHouse? Как части появляются и что с ними происходит дальше?

WB
SQLСреднийвопрос

Чем partition отличается от part в ClickHouse

Чем partition отличается от part в ClickHouse?

WB
SQLСреднийвопрос

Как обеспечить идемпотентность при вставке данных

Как обеспечить идемпотентность при вставке данных в хранилище?

WB
SQLСложныйвопрос

Идемпотентная запись именно в ClickHouse

Как обеспечить идемпотентность вставки именно в ClickHouse, если обычный UPDATE там нежелателен?

WB
SQLЛегкийвопрос

Является ли UPDATE нормальной практикой в ClickHouse

UPDATE в ClickHouse — нормальная практика? Почему?

WB
SQLСреднийвопрос

Kafka: что такое топик и партиция

Что такое топик и партиция в Kafka? Как устроено чтение и запись?

WB
PythonЛегкийвопрос

Mutable и immutable типы в Python

Какие типы в Python изменяемые (mutable), а какие неизменяемые (immutable)? Почему это важно?

WB
PythonСреднийвопрос

Как передаются объекты в Python: по ссылке или по значению

Как передаются объекты в функции в Python — по ссылке или по значению? Как при этом работает сборка мусора?

WB
PythonСреднийвопрос

Декоратор @property: геттеры и сеттеры в Python

Что делает декоратор `@property`? Как реализовать геттер и сеттер?

WB
PythonСреднийвопрос

Инкапсуляция в Python: _x против __x

Чем отличается `_x` от `__x` в Python? Как устроена инкапсуляция?

WB
PythonСреднийвопрос

Класс object — базовый класс в Python

Что такое `object` в Python?

WB
PythonСреднийвопрос

Процесс и поток: в чём разница и как влияет GIL

В чём разница между процессом и потоком? Как это связано с GIL в Python?

WB
PythonСреднийвопрос

MRO: как Python разрешает порядок наследования

Что такое MRO в Python? Как разрешается множественное наследование?

Яндекс
SQLСреднийзадача

Разметка сессий пользователя по разрыву в 1 минуту

Есть исходные данные в виде CTE. В таблице записаны отметки времени, когда пользователь совершил некоторое действие. Напиши запрос, который разметит каждую строку порядковым номером сессии пользователя `sess_id`, считая, что в одну сессию объединяются последовательные действия, между которыми прошло не больше одной минуты. ```sql WITH actions (user_id, action_time) AS ( VALUES (1, '2026-08-08 10:00:00'::timestamp), (1, '2026-08-08 10:00:30'), (1, '2026-08-08 10:01:30'), (1, '2026-08-08 10:03:00'), (1, '2026-08-08 10:03:20'), (2, '2026-08-08 11:00:00'), (2, '2026-08-08 11:05:00') ) SELECT * FROM actions; ```

Т-Банк
PythonЛегкийзадача

Перенести нули в конец массива, сохранив порядок

Перенести все нули в конец массива, сохранив относительный порядок остальных элементов. ``` [1, 0, 8, 9] -> [1, 8, 9, 0] [0, 1, 0, 3, 12] -> [1, 3, 12, 0, 0] ```

СберДевайсы
SQLСреднийзадача

Размеры когорт по месяцам активации устройств

Посчитать количество активаций устройств по месяцам. Активация устройства — его первая сессия. Когорта — группа устройств, активированных в определённом месяце. **Таблица** `sessions` — все сессии активности устройств (сессия — период непрерывного использования): | Колонка | Описание | |---|---| | `device_id` | id устройства | | `device_type` | тип устройства (`box` / `tv`) | | `session_id` | id сессии активности | | `session_ts` | дата-время начала сессии | **Вывести:** - тип устройства (например, `tv`) - месяц активации (например, январь 2025) - количество устройств, активированных в этом месяце (например, 10000) Задача из тестового на позицию аналитика, решается в DuckDB.

СберДевайсы
SQLСложныйзадача

Когортный retention устройств по месяцам

Посчитать когортный Retention. Когорты формируются по месяцам активации (активация — первая сессия устройства). Нужно рассчитать, какой процент устройств активен (есть сессии) на n-й месяц после активации. **Таблица** `sessions`: | Колонка | Описание | |---|---| | `device_id` | id устройства | | `device_type` | тип устройства (`box` / `tv`) | | `session_id` | id сессии активности | | `session_ts` | дата-время начала сессии | **Вывести:** - тип устройства (например, `tv`) - месяц когорты активации (например, январь 2025) - количество устройств в когорте (например, 10000) - номер месяца активности от активации устройства (например, 3) - доля вернувшихся устройств в этот номер месяца (например, 0.30) Задача из тестового на позицию аналитика, решается в DuckDB.

СберДевайсы
PythonСреднийзадача

Воронка: продажа → активация → активность в 2026

Построить воронку `продажа → активация → активность в 2026` на pandas. Активация — первая сессия устройства. **Таблица** `devices` — все уникальные устройства: | Колонка | Описание | |---|---| | `device_id` | id устройства | | `device_type` | тип устройства (`box` / `tv` / `ring`) | | `model` | модель устройства | | `sale_date` | дата продажи | | `sale_channel` | канал продажи | **Таблица** `sessions` — все сессии активности устройств: | Колонка | Описание | |---|---| | `device_id` | id устройства | | `session_id` | id сессии активности | | `session_ts` | дата-время начала сессии | **Вывести** в разрезе типа устройства: количество проданных устройств, количество активированных, количество активных в 2026 году и конверсии между шагами.

СберДевайсы
PythonСреднийзадача

Доля активных колец по каналам продаж с диаграммой

Посчитать процент активных в 2026 году колец (`device_type = 'ring'`) от проданных, в разрезе каналов продаж, и показать результат на диаграмме. **Таблицы:** `devices` (`device_id`, `device_type`, `model`, `sale_date`, `sale_channel`) и `sessions` (`device_id`, `session_id`, `session_ts`). **Вывести:** - канал продажи (например, `ozon`) - процент активных в 2026 году устройств (например, 0.4) - чарт

WB Travel
КейсыСложныйкейс

Продакт хочет изменить дефолтную сортировку выдачи

В сервисе путешествий дефолтная сортировка выдачи — по популярности. Продакт хочет её изменить. Какие уточняющие вопросы нужно задать по поводу этих изменений? Также предложи, какие варианты сортировки (ранжирования) можно сделать.

WB Travel
A/B тестыСреднийвопрос

Полный процесс A/B тестирования от гипотезы до раскатки

Расскажи полный процесс A/B тестирования — как он происходит от начала до конца?

WB Travel
SQLСложныйзадача

Атрибуция заказов по First Click и Last Click

Есть две таблицы. `events`: | Колонка | Описание | |---|---| | `user_id` | id пользователя | | `event_time` | время события | | `event_name` | название события | | `entry_point` | точка входа (канал) | `orders`: | Колонка | Описание | |---|---| | `user_id` | id пользователя | | `order_id` | id заказа | | `status` | статус заказа | | `time` | время заказа | | `price` | сумма заказа | Нужно посчитать количество заказов и GMV в разрезе точек входа по двум моделям атрибуции: **First Click** и **Last Click**. **Усложнение.** У заказов появились статусы `created`, `paid`, `cancelled`. Учитывать нужно только оплаченные заказы, отменённые — убрать. Написать SQL.