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

Алгоритмика:
тестовое задание для BI-аналитика

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

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

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

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

Задание #1

Известно, что сейчас работает максимально простая модель бизнеса: ученик приходит на обучение, проходит 1 единственный курс, решает задачи и выпускается. Попытка решить задачу только 1 (нажал на ответ - создалась запись в `exercise_progress`). Продолжительность обучения — 16 часовых занятий, 2 дня в неделю. В курсе 100 заданий (`exercise`). Задания решаются только во время занятий.

В БД есть следующий набор таблиц:

Коллеги-методологи в августе 2022 выпустили новую версию обучающих материалов и теперь хотят оценить, насколько хорошо они были написаны. Известно, что качество материалов как-то связано с успеваемостью.

Дополнительная информация, которая может быть полезной:

1. Методологи не работают с БД.

2. Предполагается увидеть такой план работ, как если бы на задачу анализа было выделено 2-3 дня. Поэтому нет времени глубоко закапываться в анализ. На данном этапе нужна общая оценка, а углубление в детали предполагается следующим этапом.

3. За данную БД отвечает команда разработки платформы, и качество данных в ней является высоким при работе с ней через web-приложение платформы.

4. Если всё не так однозначно и хорошо бы посмотреть данные / задать уточняющий вопрос, то тезисно опиши допущения:

____- «Тут могут быть [вот такие варианты], поэтому предположим, что я вижу [это], тогда...».

Часть 1.

Предложи план работы, содержащий как минимум следующие элементы:

- собрать базовый dataset/dataset’ы SQL-запросом для дальнейшего расчета метрик;

- метрики + алгоритм их расчета (алгоритм можно описать словами, псевдо-SQL или SQL);

- показать итоговый результат коллегам.

Часть 2.

Известно, что запись в `exercise_progress` создается в момент `create_dttm`. Посчитай среднее время решения каждого задания, предполагая, что всю вторую половину урока ученик тратит на решение заданий.

Ответ представь в виде SQL-запроса, выдающего результат в виде таблицы с 2 колонками:

exercise_id

среднее время решения задания.

Задание #2

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

Известно, что:

1. В любой момент времени студент может быть записан только в 1 группу.

2. Одной группе в любой момент времени может быть назначен только 1 курс.

Разработчики внесли изменения в БД.

Методологи просят добавить разбивку по курсам (как если бы у дашборда с результатами анализа появился фильтр по курсам).

Как изменятся запросы?

Для ответа используй какой-нибудь подходящий запрос (т.е. запрос, использующий `exercise_progress` для определения метрик) из задачи 1 и адаптируй его под изменившиеся условия.

Кратко опиши, почему логика должна быть именно такой.

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

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

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

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

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

01

SQL

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

02

Аналитическое мышление

Как разложить задачу, выбрать подход и обосновать решение.

03

Работа с данными

Аккуратная выборка, фильтрация и проверка ограничений задачи.

05 / как решать

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

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

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

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

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

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

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

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

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

09 / разборы в telegram

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

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

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

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

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