Skip to content

Тестовое задание на позицию Junior Data Analyst. Задача по SQL

Notifications You must be signed in to change notification settings

igor-turkin/test_task_4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание на позицию Junior Data Analyst. Задача по SQL

pic1

pic2

pic3

  • Запросы SQL с решением (сделал двумя разными способами) хранятся в файлах SQL_request_1.sql и SQL_request_2.sql
  • В файле solution_test_task_1.ipynb хранится решение в питоне через эмулятор sql

Объяснение решения: Сначала я объединяю таблицы чтобы получить все соответствия. Потом присваиваю менеджерам ранги (с повторениями для одинаковых значений) по зарплате внутри каждого отделения. Для первого ранга задаю значение bigger_sal '-1', так как первый ранг не может иметь коллегу с более высокой зарплатой, а для остальных подбираю в пару коллегу с более высоким рангом и бОльшим id. Делаю это двумя разными способомами.
Способ 1, через коррелирующий подзапрос: я использую дубль основной таблицы. Каждая строка с менеджером в главной таблице прогоняется через дублирующую и находит себе там нужного коллегу по указанным условиям.
Способ 2, через self join: я к главной таблице мерджу эту же таблицу, но предварительно в правой таблице смещаю ранги на один шаг вверх, и в пару ставлю более "рангового" коллегу. По условиям отфильтровываю лишние пары, и получаю нужный id менеджера в пару из правой таблицы.

About

Тестовое задание на позицию Junior Data Analyst. Задача по SQL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published