Тестовое задание
на аналитика данных
Сбер

Дано
В таблице 1 представлена витрина, хранящая информацию о режимах работы сотрудников Банка.

Таблица 1 – Режимы работы

tab_num

start_date

finish_date

wday_type01

wday_type02

wday_type03

wday_type04

wday_type05

wplace_type

end_da

15123

02.09.2020

31.12.9999

0

0

0

0

0

0

31.10.2020

16234

20.09.2020

30.10.2020

0

0

1

1

0

2


17345

28.09.2020

25.10.2020

1

0

0

0

0

2


17345

26.10.2020

31.12.2020

1

1

1

1

1

1


18456

02.09.2020

31.12.9999

2

2

2

2

2

3

30.09.2020

19567

02.09.2020

31.12.2020

3

3

3

3

3

4



В таблице 2 сведена спецификация атрибутного состава витрины из таблицы 1.

Таблица 2 – Спецификация атрибутов витрины с режимами работы

Атрибут

Описание

tab_num

Табельный номер сотрудника

start_date

Дата начала режима работы

finish_date

Дата окончания режима работы

wday_type01

Флаг режима работы для 1-го дня недели (пн):

0 – в офисе, 1 – дистанционная работа,

[2, 3] – дистанционная работа (для wplace_type = [3, 4] соответственно)

wday_type02

Флаг режима работы для 2-го дня недели (вт):

0 – в офисе, 1 – дистанционная работа,

[2, 3] – дистанционная работа (для wplace_type = [3, 4] соответственно)

wday_type03

Флаг режима работы для 3-го дня недели (ср):

0 – в офисе, 1 – дистанционная работа,

[2, 3] – дистанционная работа (для wplace_type = [3, 4] соответственно)

wday_type04

Флаг режима работы для 4-го дня недели (чт):

0 – в офисе, 1 – дистанционная работа,

[2, 3] – дистанционная работа (для wplace_type = [3, 4] соответственно)

wday_type05

Флаг режима работы для 5-го дня недели (пт):

0 – в офисе, 1 – дистанционная работа,

[2, 3] – дистанционная работа (для wplace_type = [3, 4] соответственно)

wplace_type

Категория типа рабочего места – может принимать следующие значения:

0 – в офисе,

1 – дистанционная работа,

2 – смешанный режим,

3 – смешанный режим (неделя через неделю),

4 – смешанный режим (две недели через две)

end_da

Дата окончания режима работы №2, которая (если не пуста)

используется вместо значения поля finish_date



Задание #2
Необходимо преобразовать витрину из таблицы 1 к формату, представленному в таблице 3, по следующим правилам:

  1. диапазон дат новой витрины: 01.09.2020 – 31.12.2020гг.;
  2. по каждому табельному номеру должны быть представлены все даты из диапазона;
  3. если finish_date == '31.12.9999', значит необходимо вместо него использовать значение поля end_da (только если оно не пусто);
  4. значения флага to_be_at_office для каждой пары (табельный номер, дата) могут принимать только три допустимых значения (0, 1, null)
  5. to_be_at_office == 0, когда сотрудник должен работать дома (не в офисе)
  6. to_be_at_office == 1, когда сотрудник должен находиться в офисе (не дома)
  7. to_be_at_office is null в 2-х случаях:
  8. когда для сотрудника в таблице 1 отсутствует режим работы, покрывающий конкретную дату;
  9. когда день недели – это сб или вс (выходной день).
  10. особенности работы с режимами, для которых значения wplace_type принадлежат [3, 4]:
  11. если wplace_type == 3, значит 1-я (даже неполная) неделя в рамках этого режима является полностью дистанционной, а вторая (уже точно полная) – в офисе. Чередование «Неделя через неделю» сохраняется вплоть до finish_date (end_da);
  12. если wplace_type == 4, значит первые 2 недели в рамках этого режима являются полностью дистанционными, а вторая пара недель – офисными. Чередование «две недели через две» сохраняется вплоть до finish_date (end_da).
Таблица 3 – Целевой формат витрины с режимами работы

tab_num

ymd_date

to_be_at_office

15123

01.09.2020


15123

02.09.2020

1

15123

03.09.2020

1

16234

21.09.2020

1

16234

22.09.2020

1

16234

23.09.2020

0

16234

24.09.2020

0

16234

25.09.2020

1

17345

23.10.2020

1

17345

24.10.2020


17345

25.10.2020


17345

26.10.2020

0

17345

27.10.2020

0

18456

02.09.2020

0

18456

03.09.2020

0

18456

04.09.2020

0

18456

05.09.2020


18456

06.09.2020


18456

07.09.2020

1

18456

08.09.2020

1

18456

09.09.2020

1

18456

10.09.2020

1

18456

11.09.2020

1


Результатом выполнения задания является код на одном из 2-х языков (python с использованием библиотеки Pandas или любой диалект SQL – предпочтительный вариант), включающий следующие логические блоки:

  1. блок с формированием исходной витрины (в полном соответствии с таблицей 1);
  2. блок, предназначенный для формирования целевой витрины (в соответствии с фрагментом, представленным в таблице 3) на основании исходной витрины. Необходимо постараться учесть все правила преобразования, описанные в пунктах 1-8 данного задания. В случае невозможности учета некоторых требований, следует явно пояснить, что конкретно помешало их реализации.


Тестовое задание на аналитика данных в Сбер. Ознакомьтесь с примерами реальных тестовых заданий, которые предлагаются кандидатам. Узнайте, какие задачи могут встретиться и как они связаны с будущей работой. Это поможет лучше подготовиться к собеседованию в Сбер и понять ожидания работодателя.
хочешь поделиться решением или заданием с собеседования?

Оставь свои контакты через форму, и я свяжусь с тобой в течение 24 часов
© No Data No Growth, 2024