Розуміння проблеми
Маючи таблицю з даними про співробітників, потрібно визначити найвищу зарплату для кожного відділу разом з деталями співробітників. Для нашої тестової таблиці нижче найвища зарплата для відділу HR буде 6500, для IT — 8000, а для фінансів — 9000.
Тестова таблиця: employees
Ми можемо використати підзапит, як показано нижче, де ми отримуємо максимальне значення зарплати для кожного відділу, а потім витягуємо деталі співробітників.
Звичайні варіації цього питання
- Знайдіть другу за величиною зарплату в кожному відділі: Використовуйте функцію вікна
DENSE_RANK()
абоROW_NUMBER()
для ранжування зарплат в межах кожного відділу, а потім фільтруйте по рангу = 2. - Підрахунок співробітників у кожному відділі:
- Замість
MAX(salary)
використовуйтеCOUNT(*)
, щоб підрахувати кількість співробітників у кожному відділі.
Висновок
Знаходження найвищої зарплати в кожному відділі — це базове завдання SQL, яке перевіряє вашу здатність агрегувати та групувати дані. Освоївши цей концепт, ви будете добре підготовлені до подібних завдань на співбесідах.
Спробуйте виконати ці запити на своєму наборі даних і досліджуйте варіації цієї проблеми. Слідкуйте за наступним питанням для співбесіди SQL 7/30 завтра!
Перекладено з: SQL Interview Question 6/30: How to Find the Highest Salary of Each Department