Một phương thức sử dụng 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()
chỉ là một cách thuận tiện để gán một thứ tự cho các chuỗi. Nó trả về vị trí của trạng thái trong đối số đầu tiên, thuận tiện cho mục đích sắp xếp trong trường hợp này.