Oracle 12 C поддерживает боковые объединения, что является улучшением по сравнению с подзапросами (таблица сканируется только один раз):
select x.*
from t cross join lateral
(select 'Passed' as which, id, passed as total, passed_percentage as percentage
from dual
union all
select 'Failed' as which, id, failed as total, failed_percentage as percentage
from dual
) x;
Конечно, для этого образца данных образец сканирования не является проблема производительности - если таблица не является действительно сложным представлением.
Однако, боковые объединения очень мощные и о них стоит узнать.