2016-07-26 2 views
1

У меня есть стол, в котором широко представлены такие детали, как departmentid, location, DOJ, sal & age.Комбинация группы по дате и порядку получения результата в оракуле

Я хотел бы знать максимальный SAL, максимальный возраст, depid & местоположение группы по depid:

Я написал следующий запрос, который не удалось выполнить на столе.

SELECT depid,location,MAX(sal),MAX(age) FROM company GROUP BY depid ORDER BY doj DESC 

Ошибка: ORA-00979: не GROUP BY выражение

Таблица данных: table data

результат ожидается: out come

+1

[править] Ваш вопрос и добавить некоторые выборочные данные и ожидаемые результаты на основе этих данных. _Formatted_ текст, пожалуйста, [скриншоты] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a- вопрос/285557 # 285557) –

ответ

1

Вы должны написать так:

SELECT 
depid, 
first_value(location)over(partition by depid order by doj desc) location , 
MAX(sal), 
MAX(age) 
FROM company GROUP BY depid ORDER BY doj DESC 
+0

Я хочу получить идентификатор верхнего местоположения из всех децидов в качестве результата. – user4047127

+0

Я редактирую свой ответ –

2

У вас есть два пути:

  1. Включить location в положение GROUP BY.
  2. Используйте функцию агрегата, такую ​​как MAX(location) в вашем выборе.
Смежные вопросы