01 / тестовое задание

Авито:
тестовое задание для аналитика данных

Реальное тестовое с собеседования на Middle Data Analyst: исходный текст задания, как решать и частые ошибки.

02 / оригинальный текст

Текст тестового задания

Исходный текст задания без редактуры — так, как его прислали кандидату.

Задание #1

Вы подбрасываете кубик (2N граней), после чего у вас есть две возможности:

1. Взять себе сумму $, равную выпавшему на кубике числу (выпало k – получаете k$)

2. Отклонить результат первого броска и подбросить кубик второй раз. После чего уже взять себе столько $, сколько выпало во второй раз (второй бросок отклонять уже нельзя)

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

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

Задание #2

В каждом вопросе есть только один правильный ответ, при решении считать, что все запросы синтаксически корректны.

1) В таблице revenue три колонки:

event_date - дата

user_id - уникальный id пользователя

revenue - выручка, полученная от этого пользователя в этот день

Какую из колонок нужно добавить в этот запрос,

select event_date, user_id, revenue, <?> from revenue order by event_date desc, user_id

чтобы в ней на каждый день содержалась доля выручки пользователя в этот день от выручки того же пользователя в предыдущий день?

Для каждой комбинации user_id, event_date есть только одно значение revenue, в данных нет Null-ов.

a) revenue/lag(revenue) over(order by user_id, event_date),

b) revenue/lag(revenue) over(partition by user_id order by event_date),

c) revenue/lag(revenue) over(order by event_date),

d) revenue/lag(revenue) over(partition by user_id, event_date order by user_id,event_date)

2) select distinct a, b, c, sum(d) as revenue from table group by a, b, c

Сколько строк вернет данный запрос, если такой же запрос без «distinct» вернет 600 строк, а в столбце revenue содержится 117 уникальных значений?

a) 483

b) 600

c) 117

d) 561

1) Какой запрос вернет самое большое число?

Для справки: (A right join B) эквивалентно (B left join A).

a) select count(distinct first.counter_column) from first left join second on first.join_key = second.join_key where second.filter_column >= 5

b) select count(distinct first.counter_column) from first left join second on first.join_key = second.join_key and second.filter_column >= 5

c) select count(distinct first.counter_column) from first right join second on first.join_key = second.join_key where second.filter_column >= 5

d) select count(distinct first.counter_column) from first right join second on first.join_key = second.join_key and second.filter_column >= 5

Задание #3

Перед вами шахматная доска размером NxN.

В верхнем левом углу находится шашка. Шашка может двигаться только вправо или вниз (вверх или влево двигаться не может).

Сколькими различными путями шашка может прийти в нижний правый угол?

Задание #4

Осьминог Пауль 15 раз пробовал угадать победителя футбольного матча. 14 раз он угадал правильно, 1 раз ошибся

Проверьте гипотезу H0: Пауль выбирает победителя футбольного матча случайно.

Сделайте вывод.

Задание #5

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

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

За последний месяц факт продаж оказался на 15% ниже прогноза.

1. Как определить, что это отклонение является аномальным и нужно искать его причину?

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

03 / разбор в сборнике

Разбор задачи в сборнике

Эту или очень похожую задачу мы уже разобрали по шагам.

04 / что проверяют

Что проверяет это задание

01

SQL

Выборки, агрегаты, джойны и оконные функции для анализа данных.

02

Продуктовый кейс

Разложить задачу, выбрать метрики и сделать выводы.

03

Матстатистика

Оценки, распределения и проверка гипотез.

04

Теория вероятностей

Вероятностные модели и аккуратные рассуждения.

05 / как решать

Как подойти к решению

  1. 1

    Разберите условие: что именно просят посчитать и в каких разрезах.

  2. 2

    Сверьтесь с данными: какие таблицы есть, период и нужные фильтры.

  3. 3

    Решайте по шагам и фиксируйте промежуточные результаты и допущения.

  4. 4

    Доведите до финальных чисел и коротких выводов или рекомендаций.

06 / частые ошибки

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

  • Неверный период, разрез или единицы измерения.
  • Не учтены фильтры и сегменты из условия.
  • Решение без промежуточных шагов — только финальная цифра.
  • Нет выводов и рекомендаций по результату.
07 / хороший ответ

Каким должен быть сильный ответ

Хороший ответ — это не просто финальные числа или код. Работодатель должен увидеть, как вы думаете, как проверяете ограничения задачи и как оформляете результат.

  • короткое описание логики решения;
  • промежуточные таблицы, запросы и фильтры;
  • финальные значения по каждому пункту задания;
  • понятные выводы и рекомендации.
08 / похожие задания

Похожие задания

09 / разборы в telegram

Хочешь больше таких разборов?

В Telegram-канале разбираю тестовые с собеседований, метрики и типичные ошибки кандидатов.

Подписаться в Telegram →
10 / следующий шаг

Разбираешь тестовые, но не уверен в решении?

На интенсиве разбираем реальные кейсы, A/B-секции, метрики, SQL, Python и типовые ошибки кандидатов.