SQL питання для співбесіди 6/30: Як знайти найвищу зарплату в кожному відділі

Розуміння проблеми

Маючи таблицю з даними про співробітників, потрібно визначити найвищу зарплату для кожного відділу разом з деталями співробітників. Для нашої тестової таблиці нижче найвища зарплата для відділу HR буде 6500, для IT — 8000, а для фінансів — 9000.

Тестова таблиця: employees

pic

Ми можемо використати підзапит, як показано нижче, де ми отримуємо максимальне значення зарплати для кожного відділу, а потім витягуємо деталі співробітників.

pic

Звичайні варіації цього питання

  1. Знайдіть другу за величиною зарплату в кожному відділі: Використовуйте функцію вікна DENSE_RANK() або ROW_NUMBER() для ранжування зарплат в межах кожного відділу, а потім фільтруйте по рангу = 2.
  2. Підрахунок співробітників у кожному відділі:
  • Замість MAX(salary) використовуйте COUNT(*), щоб підрахувати кількість співробітників у кожному відділі.

Висновок

Знаходження найвищої зарплати в кожному відділі — це базове завдання SQL, яке перевіряє вашу здатність агрегувати та групувати дані. Освоївши цей концепт, ви будете добре підготовлені до подібних завдань на співбесідах.

Спробуйте виконати ці запити на своєму наборі даних і досліджуйте варіації цієї проблеми. Слідкуйте за наступним питанням для співбесіди SQL 7/30 завтра!

Перекладено з: SQL Interview Question 6/30: How to Find the Highest Salary of Each Department

Leave a Reply

Your email address will not be published. Required fields are marked *