flag가 'I', 'U', 'D'만 있다면 order by로 가능할 듯 하네요.
with t as ( select 60 keyno, 35 column_b, 40 column_c, 'I' flag from dual union all select 60, 50, 60, 'U' from dual union all select 62, 70, 80, 'I' from dual union all select 63, 40, 50, 'D' from dual ) select * from (select keyno, column_b, column_c, flag, row_number() over ( partition by keyno order by flag desc) rn from t) where rn = 1