Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Тестовое задание на вакансию Junior Data-инженер

Python

Есть CSV-файл c зарплатами сотрудников. Каждая строка имеет следующий формат: «<Фамилия сотрудника> <зарплата>» (прим.: MCILWRAITH 550). Необходимо написать python-скрипт, который принимает на вход аргумент — название CSV-файла вышеуказанного формата и выдаёт на выходе следующие данные, рассчитанные на данных из файла:

  • Кол-во сотрудников;
  • Общая сумма зарплат;
  • Средняя зарплата;
  • Медиана от зарплат;
  • Минимальная зарплата;
  • Максимальная зарплата;
  • Кол-во сотрудников, получающих сумму строго большую, чем средняя зарплата.

Как должен работать скрипт

Необходимо через командную строку подать ему аргументном название файла. Например:

python script.py <название файла>

Усложнение:

  • Сделать возможность принимать данные указанного формата из стандартного ввода. Данные из стандартного ввода подаются в файл вот таким образом:
echo 'Iavnov 1000' | python script.py # 1ый способ
python script.py  < cat <файл с данными> # 2ой способ
  • Посчитать количество сотрудников, чьи фамилии начинаются на букву «K».

Важно:

Задание необходимо выполнить без использования Pandas.

Файл находится здесь.

SQL

Есть БД, состоящая из двух таблицы — employees (таблица с сотрудниками) и actions (таблица с действиями сотрудников). Таблицы имеют следующий формат:

  • employees: id, login, где id — суррогатный ID сотрудника, login — логин сотрудника;
  • actions: employee_id, dt, action, где employee_id — это ID сотрудника из таблицы employees, dt — дата и время действия, action — тип действия.
  1. Составить запрос, который выводит:
  • кол-во действий за определённый месяц (скажем февраль 2020);
  • кол-во сотрудников, которые выполняли хоть какие-нибудь действия за указанный период;
  1. Составить запрос, который выводит логины сотрудников, которые не выполняли никаких действий в феврале 2020.

  2. Составить запрос, который выводит 5 сотрудников с наибольшим количеством действий за февраль 2020, а также кол-во их действий, отсортированных в порядке убывания.

Bash (со звёздочкой, опциональное)

Создать простейшее key-value хранилище по следующей логике:

  • данные всегда дозаписываются в файл, ничего не перезаписывается — данные всегда записываются в конец файла. Записываются в формате: <ключ>, <значение>;
  • удаление данных происходит с помощью простановки в поле значение специальной метки — #tombstone#.

Реализовать в виде bash-функций в одном файле:

  • set_value — записать;
  • get_value — выбрать;
  • del_value — удалить.