Получение значений, относящихся к максимальным и минимальным значениям в Oracle

В Oracle 11g нам нужно иметь возможность запрашивать таблицу, чтобы вытащить информацию из строк с наивысшим и наименьшим значениями в определенной группе.Например, используя таблицу EMP, мы хотели бы найти имя человека с самой высокой зарплатой и имя человека с самой низкой зарплатой в каждом отделе

DEPTNO   MAX_SAL    MAX_EARNER    MIN_SAL    MIN_EARNER
-------------------------------------------------------
10       5000       KING          1300       MILLER
20       3000       FORD          2975       JONES
etc

(если есть два или более сотрудников с самым высоким или самым низким окладом мы хотим всегда возвращать первый в алфавитном порядке).

A Предыдущий пост обсуждал, как получить значение только для максимума, но не для max и min.

На данный момент у нас есть неаккуратное решение, основанное на приведенной выше ссылке с последующим применением дополнительных запросов, но для нас важна производительность. Я предполагаю, что хорошее решение также потребует аналитических функций и, возможно, стержня для объединения нескольких строк в отдельные строки.

Любая помощь очень ценится! Ричард

5
задан Community 23 May 2017 в 11:43
поделиться