Определение сотрудника с наивысшей оплатой

Отсортируйте сотрудников по salary по убыванию и возьмите одну строку. Дополнительная сортировка по id задаст детерминированный выбор при одинаковой максимальной зарплате.

Короткий ответ

Что ответить на собеседовании

Отсортируйте сотрудников по salary по убыванию и возьмите одну строку. Дополнительная сортировка по id задаст детерминированный выбор при одинаковой максимальной зарплате.

Подробный разбор

Ответ с пояснениями

Условие

В базе данных имеется таблица EMPLOYEES со столбцами: id, name, salary. Требуется вывести полностью одну строку, где значение salary максимально.

Ответ

Отсортируйте сотрудников по salary по убыванию и возьмите одну строку. Дополнительная сортировка по id задаст детерминированный выбор при одинаковой максимальной зарплате.

Для PostgreSQL/MySQL:

SELECT id, name, salary
FROM EMPLOYEES
WHERE salary IS NOT NULL
ORDER BY salary DESC, id
LIMIT 1;

NULL исключён явно, чтобы его позиция при сортировке не зависела от СУБД. Если таблица пуста или зарплаты везде неизвестны, строк не будет. Для всех сотрудников с максимальной зарплатой нужен другой контракт, например сравнение salary с подзапросом MAX(salary), без LIMIT 1.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее