TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #130 3.13K
✅ Тестовое. Задачка по SQL. Просматривала я аналитические каналы и вижу интересное тестовое. У меня мозг на автомате начал накидывать варианты и уже прям не терпелось написать скрипт.
Думаю это будет полезным для всех.

Итак, есть две таблички: с отделами и данными по зарплате у сотрудников и их начальников.
Создадим быстренько датафреймы, на котором потренируемся прям в юпитер ноутбуке с помощью библиотеки pandasql. Про эту библиотеку пост тут.
data = {'id': [1,2,3,4,5,6],
'name': ['Финансы','Риски','Розница','Безопасность','ДКК','Аналитика']}
Departament = pd.DataFrame(data)


data = { 'id': [1,2,3,4,5,6],
'id_head': [1, 1,2,4,5,3],
'id_dep':[2,2,3,3,8,4],
'sal': [45000,80000,100000,65000,35000,50000] }
Personal = pd.DataFrame(data)


📌Задание 1. Вывести отдел с наибольшим числом сотрудников.
Самый простой способ:
select d.name as Department, 
count(p.id) as count_personal
from Personal p
join Departament d on d.id = p.id_dep
group by 1
order by 1 desc
limit 1


Но в случае если у нескольких отделов одинаковое количество сотрудников, то результат выдаст один отдел, а не два.
Поэтому рекомендую сделать второй вариант через подзапрос. Можете потренироваться - написать сами.

📌Задание 2. Вывести список сотрудников, получающих заработную плату выше, чем у руководителя. Вот тут уже интересненько.

Это можно реализовать соединив таблицу с этой же модифицированной таблицей. Сделаем табличку с помощью группировки, чтобы был уникальный сотрудник и его з/пл. И присоединим ее с помощью left join к основной по ключу p1.id_head = p2.id.
Тогда в одной строке будет и з/пл сотрудника и з/пл его руководителя. И потом оставляем тех, у кого sal>sal_head
select p1.id
from Personal p1
join (select id,sal as sal_head
from Personal
group by 1) p2 on p1.id_head = p2.id
where sal>sal_head


📎 Тут ноутбук с решением.
  • 👍 16
  • 🔥 8
  • 🆒 2
More from @analysts_world
  1. Sep 21, 2026📊 Задачка с собеседования Ну что, по итогам голосования большинство хотят задачки и sql.…
  2. Sep 14, 2026Post #345
  3. Sep 14, 2026Что-то я тут прям зачастила с A/B тестами 😅 Смотрю на последние посты и такое чувство, чт…
  4. Sep 1, 2026🎒 С 1 сентября, друзья! Сегодня как раз отправила своих детей в школу – и вот это чувство…
  5. Aug 24, 2026Вне выборки Обычно здесь про SQL, Python и AB-тесты. Но не всё, что важно, попадает в выбо…
  6. Aug 20, 2026Fuckup Night от создателей Trisigma, Ares и karpov.courses Согласитесь, ивенты, где все де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →