Как насчет этого:
SQL> with test (id, version, islive) as
2 (select 'comp1', 2, 'true' from dual union all
3 select 'comp1', 3, 'true' from dual union all
4 select 'comp1', 4, 'false' from dual union all
5 select 'comp1', 1, 'true' from dual union all
6 select 'comp2', 4, 'true' from dual union all
7 select 'comp2', 1, 'false' from dual
8 )
9 select id, version, islive
10 from (select id, version, islive,
11 row_number() over (partition by id order by version desc) rn
12 from test
13 )
14 where rn = 1;
ID VERSION ISLIV
----- ---------- -----
comp1 4 false
comp2 4 true
SQL>