Als ik het goed begrijp, wil je de laatste waarde die een van de vier is die je opgeeft (d.w.z. niet 'NONE'
). Vensterfuncties zijn waarschijnlijk de eenvoudigste oplossing:
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';