Ако разбирам правилно, искате последната стойност, която да е една от четирите, които сте посочили (т.е. не 'NONE'
). Функциите на прозореца са може би най-простото решение:
select t.*
from (select t.*,
first_value(value) over (partition by uaid order by id desc) as current_value
from t
) t
where risk_factor <> 'NONE';