Я использую Oracle-Apex
У меня есть таблица с именами и зарплатами. Я хочу получить имя с самой высокой зарплатой, используя MAX (оклад).
Итак, запрос выглядит так:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME
HAVING MAX(SALARY) = SALARY;
Это не работает, ошибка ORA-00979: появляется не выражение GROUP BY. Так что я использую это, чтобы остановить эту ошибку:
SELECT NAME FROM EMPLOYEE
GROUP BY NAME, SALARY
HAVING MAX(SALARY) = SALARY;
И он группирует каждую отдельную зарплату в одну строку и возвращает максимальную зарплату в каждой строке, поскольку каждая зарплата отличается, он возвращает каждую строку.
Как мне сгруппировать все в одну большую группу, не изменяя таблицы? Я хочу, чтобы это сработало:
SELECT NAME FROM EMPLOYEE
WHERE MAX(SALARY) = SALARY;
Но с наличием. Это действительно просто, но я не могу найти способ.