Eine Methode verwendet row_number()
:
select t.*
from (select t.*,
row_number() over (partition by orderid
order by instr('LOW,MEDIUM,HIGH', status) as seqnum
from transaction t
) t
where seqnum = 1;
instr()
ist nur eine bequeme Möglichkeit, Zeichenfolgen eine Reihenfolge zuzuweisen. Es gibt die Position des Status im ersten Argument zurück, was in diesem Fall für Sortierzwecke praktisch ist.