Nếu tôi hiểu chính xác, bạn muốn giá trị cuối cùng là một trong bốn giá trị mà bạn chỉ định (tức là không phải 'NONE'
). Các hàm cửa sổ có lẽ là giải pháp đơn giản nhất:
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';