У меня есть таблица со статусом и местоположением, ниже приведены данные. Я хотел бы получить максимальный статус, разделенный по местоположению, используя пользовательский порядок. Есть идеи, что нужно изменить? Прямо сейчас это дает только максимальное значение, независимо от порядка, который я упомянул.
Пользовательский порядок: 1> 3> 2
status | location
1 | 11
2 | 11
2 | 12
3 | 12
3 | 11
Ожидаемый результат для местоположения 11: 1 Ожидаемый результат для местоположения 12: 3
Запрос:
select max(status) over (partition by location order by decode(status, '1',6,'3',5,'2',4,3)
rows between unbounded preceding and unbounded following) mx from items;
http://sqlfiddle.com/#! 4 / ed9e7e / 13
create table items
( status varchar2(1), location number(9)
);
insert into items values('1',123);
insert into items values('2',123);
insert into items values('3',123);
insert into items values('4',123);