Еще один вариант:
SQL> with test (datum, stock_a, stock_b, stock_c) as
2 (select date '2020-01-23', 18.2, 26.1, 10.2 from dual union all
3 select date '2020-01-24', 15.5, 26.8, 10.8 from dual union all
4 select date '2020-01-25', 12.5, 28.2, null from dual union all
5 select date '2020-01-26', 11.2, null, null from dual
6 )
7 select distinct
8 first_value(stock_a) over (order by datum desc) sa,
9 first_value(stock_b) over (order by case when stock_b is null then date '0000-01-01' else datum end desc) sb,
10 first_value(stock_c) over (order by case when stock_c is null then date '0000-01-01' else datum end desc) sc
11 from test;
SA SB SC
---------- ---------- ----------
11,2 28,2 10,8
SQL>