Сортировка SQL не следует за групповым оператором, всегда использует первичный ключ
У меня есть база данных SQL с таблицей под названиемstaff
, имея следующие столбцы:
workerID (Prim.key), name, department, salary
Я должен был найти работников с самой высокой зарплатой в отделе и использовал следующее утверждение:
select staff.workerID, staff.name, staff.department, max(staff.salary) AS biggest
from staff
group by staff.department
Мне показывают одного работника из каждого отдела, но они НЕ являются работниками с самой высокой зарплатой, НО самая большая величина заработной платы показана, даже если работник не получает эту зарплату.
Показанный человек - это работник с наименьшим идентификатором работника на отдел.
Итак, происходит некоторая сортировка с использованием первичного ключа, даже если он не упоминается в выражении group by.
Может кто-нибудь объяснить, что происходит и, возможно, как правильно отсортировать.