Wenn ich das richtig verstehe, möchten Sie den letzten Wert, der einer der vier ist, die Sie angeben (d. h. nicht 'NONE'
). Fensterfunktionen sind wahrscheinlich die einfachste Lösung:
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';