Sobes.tech
Senior
57

SELECT fio, position, salary FROM users WHERE salary = (SELECT MAX(salary) FROM users WHERE position = users.position);

Ettevõtted, kust küsiti
RT Labs

Vastus AI-lt

sobes.tech AI

Для получения сотрудников с максимальной зарплатой в каждой должности можно использовать оконную функцию RANK() или подзапрос с группировкой. Вот пример запроса с использованием подзапроса:

SELECT u.fio, u.position, u.salary
FROM users u
JOIN (
    SELECT position, MAX(salary) AS max_salary
    FROM users
    GROUP BY position
) max_salaries ON u.position = max_salaries.position AND u.salary = max_salaries.max_salary;

Этот запрос сначала находит максимальную зарплату по каждой должности, а затем выбирает всех сотрудников, у которых зарплата равна максимальной для их должности.

Результат будет:

Михайлов Тестировщик 150000
Антонов Разработчик 200000
Капустин Директор 300000
Астахов ИБ 200000