Отсортируйте сотрудников по 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.