Тестовые задания по Data
Здесь собраны реальные тестовые задания, которые дают соискателям на стажировках и junior-позициях. Эти задания помогут лучше подготовиться к отбору, потренироваться и пополнить портфолио
Cian • Лёгкая сложность
Тестовое задание по Data от компании Cian
Базы данных и SQL запросы Дан софт, автоматизирующий работу библиотеки. 3НФ схемы БД софта выглядит следующим образом: Произведение - id - название Издание - id - id_произведения - год издания - кол-во страниц Экземпляр - id - id_издание - инвентаризационный номер Лог операций - id - id_user - id_экземпляр - дата_взяли - дата_вернули Нужно написать SQL-скрипты, которые отвечают на следующие вопросы: 1. Найти произведения, которые издавались более 5 раз. 2. Проверить, есть ли экземпляры, не привязанные ни к одному изданию. 3. Для каждого пользователя найти последние три взятые им произведения. Для каждого такого произведения указать, сколько всего раз его брали (за все время). 4. Список самых неблагонадежных пользователей библиотеки — рейтинг 10 самых плохих пользователей по двум или более критериям. Критерии неблагонадежности с точки зрения бизнеса предложите самостоятельно. Дополнительные комментарии: 1. При оценке результата учитывается оптимальность выборок данных и возвращаемых результатов. 2. Если задачу можно решить без вложенного запроса, то решение с вложенным запросом не оптимально. Секция `WITH` — это тоже вложенный запрос. 3. Считаем, что доступны все возможности языка SQL, определенные в стандартах ANSI SQL и Hive QL ([Hive Language Manual](https://cwiki.apache.org/confluence/display/Hive/LanguageManual)). --- Оценка критериев объявлений У вас есть сайт — доска объявлений (например, циан, авито, алиэкспресс и др. не нужно привязываться к функционалу конкретного сайта.) Задание: Предложить набор показателей, оценивающих качество базы объявлений. Оценка рекламных каналов В течение двух недель маркетологи проводили эксперименты по двум разным рекламным площадкам (например, Google и Яндекс). На обоих ресурсах реклама была показана примерно одинаковое число раз. Какие показатели нужно измерить, чтобы сравнить эти две площадки? Маркетологи хотят оставить одну площадку. Какие будут ваши рекомендации по выбору? Комментарий: Рекомендации — это не просто перечень показателей, а рекомендации по их интерпретации и принятию решения на их основе. Дашборд анализ заказов Есть файл с выгрузкой по истории заказов интернет-магазина (Тестовый набор данных (Заказы).xlsx). Нужно: 1. Проанализировать файл и предложить метрики, полезные для менеджера. 2. Реализовать прототип дашборда с этими метриками и данными файла. Прототип нужно реализовать в виде приложения в Tableau Public. Скачать можно[тут](https://public.tableau.com/en-us/s/). Прислать ссылку на финальный дашборд в облаке Tableau. 3. Описать сценарий работы менеджера с этим дашбордом.
Skypro • Средняя сложность
Тестовое задание по Data от компании Skypro
Тестовое задание Аналитик данных Как заполнить ответ 1. Создай копию этого [документа](ТЗ%20_%20Data%20Analyst%20Skypro%20.docx) (файл → создать копию) 2. Заполни ответы и пришли рекрутеру ссылку, открытую на чтение (настройки доступа). Ограничений по размеру и формату ТЗ нет. Вы работаете аналитиком в компании, которая занимается онлайн-образованием и предлагает различные курсы на своем веб-сайте. Ответьте на следующие вопросы: • Какие основные продуктовые метрики вы бы использовали для оценки эффективности курсов? Почему? • Как вы бы измеряли удержание и лояльность пользователей? Какие факторы могут влиять на них? • Как вы бы оценивали конверсию пользователей из просмотра каталога курсов до оплаты и прохождения курса? Какие способы повышения конверсии вы бы предложили? • Как вы бы проводили A/B-тест для сравнения двух версий веб-сайта с разными элементами дизайна и юзабилити? Какие метрики и статистические методы вы бы использовали для оценки результатов? 1 Задание Дана таблица "orders" со следующими столбцами: order_id (идентификатор заказа), course_id (идентификатор курса), user_id (идентификатор пользователя), order_date (дата заказа), price (цена заказа). Напишите SQL-запрос, который возвращает сумму выручки по каждому курсу за последний месяц. 2 Задание Дана таблица "users" со следующими столбцами: user_id (идентификатор пользователя), name (имя пользователя), email (электронная почта пользователя), registration_date (дата регистрации). Напишите SQL-запрос, который возвращает количество новых пользователей, зарегистрировавшихся в каждый день за последние 7 дней. 3 Задание Даны две таблицы: "courses" (course_id - идентификатор курса, course_name - название курса) и "ratings" (rating_id - идентификатор оценки, course_id - идентификатор курса, user_id - идентификатор пользователя, rating - оценка курса от 1 до 5). Напишите SQL-запрос, который возвращает название курса и среднюю оценку для каждого курса с количеством оценок больше 10. 4 Задание Дана таблица "user_courses" со следующими столбцами: user_id (идентификатор пользователя), course_id (идентификатор курса), start_date (дата начала курса), end_date (дата окончания курса). Напишите SQL-запрос, который возвращает количество активных пользователей (пользователей, у которых есть хотя бы один текущий курс) на определенную дату. 5 Задание Дана таблица "events" со следующими столбцами: event_id (идентификатор события), user_id (идентификатор пользователя), event_type (тип события, например: 'registration', 'course_purchase', 'course_complete'), event_date (дата события). Напишите SQL-запрос, который возвращает количество пользователей, которые совершили покупку курса, но не завершили его в течение 30 дней после покупки. Как к тебе обращаться? ФИ: Почта: Телефон: Чего ждать дальше? Мы всё проверим и вернемся с ответом на почту в рамках 2-3 рабочих дней.
Avito • Лёгкая сложность
Тестовое задание по Data от компании Avito
Задача 1. 5 людей различного возраста случайным образом садятся за круглый стол. Какова вероятность того, что они рассядутся по возрастанию или по убыванию возраста? Задача 2. Вы подбрасываете кубик (6 граней), после чего у вас есть две возможности: 1. Взять себе сумму $, равную выпавшему на кубике числу (выпало 3 – получаете 3$) 2. Отклонить результат первого броска и подбросить кубик второй раз. После чего уже взять себе столько $, сколько выпало во второй раз (второй бросок отклонять уже нельзя) Какую стратегию нужно выбрать, чтобы максимизировать ожидаемую прибыль (при каких значениях первого броска нужно перебрасывать?) Чему равна ожидаемая прибыль при этой стратегии (математическое ожидание)? Задача 3. В БД есть 3 таблицы: • Employee (empid, empname) – содержит ФИО сотрудников • Employee_timesheet (empid, date, num_of_hours) - содержит кол-во отработанных сотрудниками часов по дням • Employee_hourly_rate (empid, hourly_rate) – содержит часовую ставку каждого сотрудника Напишите SQL-запрос, который посчитает зарплату по каждому сотруднику по месяцам. Задача 4. Чтобы между пользователями Авито было больше доверия, а жизнь мошенников стала сложнее, мы решили попробовать ввести систему отзывов: покупатель может оставить отзыв на продавца. Отзыв может быть просто рейтингом (1-5 звездочек), а может содержать дополнительно какой-то произвольный текст. 1. Предложите метрики, по которым можно будет следить за прогрессом такого проекта и определять его успешность 2. Поскольку Авито не магазин, а площадка для связи покупателя и продавца, мы в большинстве случаев не знаем, произошла ли в действительности сделка и на каких условиях. Для большинства сделок последнее, что нам известно - покупатель нажал кнопку просмотра телефона продавца или связался с ним в чате. Также мы всегда знаем логин (привязанный к email и телефону) продавца, но покупатель может быть незалогиненным. В связи с этим кажется, что есть большой риск накрутки отзывов и недобросовестного использования системы: например, профессиональные участники будут пытаться оставлять негативные отзывы на своих конкурентов и хвалебные на себя. Предположим, что система некоторое время уже работает и у нас есть данные по отзывам и всей активности клиентов: что продавал, что искал, на каких объявлениях смотрел телефоны и т.п. Как оценить масштабы накрутки, т.е. долю фальшивых отзывов? Задача 5. Представьте, что вы аналитик в крупном интернет-магазине. За последний месяц факт продаж оказался на 15% ниже прогноза и вам необходимо выяснить, в чем причина. Опишите, как бы вы решали эту задачу: какие гипотезы вы бы стали проверять, каким образом и какие данные вам для этого потребуются.
ВТБ Аналитик данных • Средняя сложность
Тестовое задание по Data от компании ВТБ Аналитик данных
Тестовое задание УЖЦК В данном тестовом задании предлагается выполнить несколько прикладных задач, связанных с псевдоданными УЖЦК. Описание данных В приложении к заданию есть файл database.db. Он представляет собой файл БД на фреймворке sqlite3. Синтаксис SQL, используемый в данной БД почти не отличается от ORACLE DB (более подробно можно почитать [тут](https://unetway.com/tutorial/sqlite-syntax). Запросы к базе можно сохранять сразу в pandas.Dataframe, используя следующий код: ``` import pandas as pd import sqlite3 as sql query = 'SELECT * FROM pl LIMIT 5' con = sql.connect('database.db') df = pd.read_sql_query(sql = query, con=con) con.close() df ``` | |client_id |segment |period |product |pl| |---|-----------|-----------|-------|-----------|--| |0 |yxwtZv530y |Массовый |p_1 |Кредит |0.374924| |1 |YFaxw7Fn7N |Массовый |p_1 |Кредит |1.419884| |2 |TIqbQo6hvx |Массовый |p_1 |Кредит |110.548341| |3 |r5EpnGGW6A |Стандартный |p_1 |Кредит |10.361832| |4 |mVQkt2IbTH |Массовый |p_1 |Кредит |108.225665| В базе данных хранится 2 таблицы: pl и campaign. Ключами для связи этих таблиц является поле client_id. В таблице pl находится информация о ЧОД (чистый операционный доход) от клиента с продуктом в разрезе периодов. В таблице campaign хранятся данные о прошедшей между отчетными периодами "p_1" и "p_2" маркетинговой кампании.<br> Атрибутный состав таблицы pl: - client_id - id клиента - segment - сегмент клиента внутри СМБ(Средний и малый бизнес) - period - период расчета ЧОД банка от продукта, используемого клиентом - product - продукт - pl - ЧОД в тысячах рублей Пример: строка 0 на срезе выше - в периоде "p_1" за продукт "Кредит" с клиента "yxwtZv530y" массового сегмента банк заработал 0.374924 тыс. рублей. Если в каком-либо периоде информация о клиенте/продукте у клиента отсутствует, значит в этот период клиента в банке не было/клиент продуктом не пользовался. Атрибутный состав таблицы campaign: - client_id - id клиента - product - продукт кампании - response - статус отклика на предложение - manager_id - id менеджера, на которого назначен клиент Задание 1) Посчитать средний ЧОД по продуктам и количество клиентов с продуктом для каждого сегмента в разрезе периодов. 2) Посчитать средний ЧОД и количество клиентов в каждом сегменте в разрезе периодов. 3) Оценить отток клиентов с продуктов в периоде p_2. 4) Посчитать сумму ЧОД, привлеченную каждым менеджером в ходе маркетинговой кампании 5) Оценить эффективность маркетинговой кампании.
без ограничений.
Чтобы получить полный доступ,
вам необходимо зарегистрироваться.