Задачи на бизнес аналитика Тинькофф

Недавно нам прилетело большое тестовое задание от Тиньков-Банка на должность аналитика данных. Там очень много задач, но сегодня мы разберем несколько — остановимся на мелочах и обратим внимание на тонкие моменты.

8649 просмотров

Материал создан командой Симулятора «SQL для анализа данных».

Описание базы данных

Итак, нам дана такая структура таблиц:

В какой СУБД мы будем работать — не сказано. По косвенным признакам мы предполагаем, что это PostgreSQL.

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

Кстати, интересный вопрос: представьте, что вы можете попросить интервьюера дать вам пример любого запроса.

Какой запрос вы попросите написать, чтобы понять, с какой СУБД вы имеете дело?

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

Необходимо получить список сотрудников в формате: «Иванова — Наталья – Юрьевна». ФИО должно быть прописано в одном столбике, разделение —.

День открытых дверей Тинькофф Старт: аналитика

Вывести: новое поле, назовем его fio, birth_dt.

Эта задача достаточно простая — здесь даже нет необходимости джойнить другие таблицы, достаточно поработать с таблицей Employees.

Основная проблема — вывести ФИО через заданный разделитель. Многие решают эту задачу с помощью простой конкатенации:

select first_nm || ‘—’ || middle_nm || ‘—’ || last_nm as fio, birth_dt from employees

Но мы работаем в PostgreSQL, поэтому воспользуемся плюшкой — функцией CONCAT_WS. Она тоже делает конкатенацию строк, но первым аргументом принимает разделитель:

select concat_ws(‘—’, first_nm, middle_nm, last_nm) as fio, birth_dt from employees

Выглядит посимпатичней. Заодно и перед интервьюером блеснули знаниями

Вывести %% дозвона для каждого дня. Период с 01.10.2020 по текущий день.

Читайте также:  Целесообразность означает что бизнес тест

%% дозвона – это доля принятых звонков (dozv_flg=1) от всех поступивших звонков (dozv_flg = 1 or dozv_flg = 0).

Вывести: date, sla (%% дозвона)

Здесь задача уже поинтересней — мы все еще работаем с одной таблицей, но многие соискатели на таких задачах начинают городить многоэтажные подзапросы.

А на самом деле, все просто — достаточно просто знать, что условный оператор CASE можно использовать внутри агрегатных функций — например, COUNT.

Итак, чтобы посчитать SLA, нам нужно:

  • посчитать кол-во звонков с dozv_flg = 1
  • посчитать общее количество звонков
  • разделить одно на другое

Давайте сделаем это в одном запросе, без подзапросов и CTE.

select start_dttm::date as «date», count(case when dozv_flg=1 then 1 end) / count(case when dozv_flg in (1, 0) then 1 end) as sla from calls where start_dttm::date between ‘2020-10-01’ and now()::date group by start_dttm::date

Вот, собственно, и все. Но проговорим несколько важных моментов:

Почему мы написали не count(*), а count(case when dozv_flg in (1, 0) then 1 end)?

Как попасть на работу мечты | Бизнес-Аналитик Тинькофф

Любопытный читатель

Как проходит интервью с системными аналитиками DWH в Тинькофф

Привет! Я Мария Фоменко, заместитель руководителя управления хранилищ данных и отчетности в Тинькофф. Расскажу о направлении DWH и о том, как попасть к нам в команду, что спрашивают на скрининге HR и на секциях системного анализа DWH.

Статья будет полезна тем, кто планирует расти в профессии, интересуется работой в большой компании или хочет работать именно в Тинькофф. Если узнали себя в любом из пунктов, добро пожаловать под кат

Data Warehouse в Тинькофф

Наша команда занимается данными в компании. Наша миссия — распространять data-driven подход в компании, создавать единую платформу и пространство работы с данными.

Читайте также:  Лучшее программное обеспечение для бизнеса

Команда DWH делится на два блока:

Технический или core-блок создает платформу данных как продукт. Ключевая задача специалистов этого блока — создавать и развивать инфраструктуру нашей платформы.

Если бы вы читали мой блог, вы бы прошли собеседование в Тинькофф банк — эти задачи я разбирал

Я сейчас не говорю, про задачи, которые дают топ-менеджерам и аналитикам, там все несколько (на самом деле сильно) сложнее, но в сети я нашел задачи, которые Тинькофф банк предлагал кандидатам на собеседовании в свою службу поддержки. А вы, наверное, думали, что отвечать на звонки берут любого с улицы?

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

Фото: design-nf.com

Давайте вспомним их.

Задача про простой карандаш

Нужно посчитать, сколько граней имеет обычный незаточенный 6-гранный карандаш.

Подвох кроется в том, что нам в условии говорят о том, что карандаш 6-гранный. Но на самом деле это не так, потому что с торцов карандаша (он же незаточенный) есть ещё две грани. Итого — 8 граней.

Задача про ров и две доски

Эту задачу, помнится, я объяснял на спичках. Суть в том, что имеется квадратный ров, шириной ровно 5 метр. А у вас есть две доски, которые длиной тоже ровно 5 метров. И вам как-то надо перебраться через этот ров.

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

Читайте также:  Цветы как бизнес видео

Задача про 45 минут и две веревки

У вас есть две метровые веревки. Они пропитаны бензином для лучшего сгорания. Каждая веревка полностью сгорает ровно за полчаса. Но горят веревки неравномерно, то есть на разных участках скорость сгорания разная. Как с помощью двух этих веревок и спичек (чтобы их поджечь) отмерить время в 45 минут?

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

В этот момент мы должны поджечь вторую веревку с другого конца, тогда она непременно сгорит в два раза быстрее, то есть за 15 минут.

Как вам? Развлеклись? Можете дать эти задачки своим коллегам по работе, посмотреть, как быстро они их решат. Ну и, конечно, почаще заходите на мой канал и в мой видеоблог на Ютубе , где я каждый день объясняю рассказываю и решаю подобные задачи.

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
Бизнес для женщин