Не очень понятно, нужно ли вам вычислять эти DIFF для всех LABVALUE для данного КОДА (например, UQN0).Если вас интересуют только два последних, как показано на опубликованном снимке экрана, то можно также использовать чистый SQL без каких-либо аналитических функций:
create table lab (
code varchar2(10),
date_of_entry date,
lab_value number(10,2)
);
insert into lab values('UQN0', trunc(sysdate) - 3, 0.98);
insert into lab values('UQN0', trunc(sysdate) - 2, 0.85);
insert into lab values('UQN0', trunc(sysdate) - 1, 0.90);
insert into lab values('UQN0', trunc(sysdate), 0.64);
commit;
select * from lab;
with last_results as (
select t.* from (
select * from lab where code = 'UQN0'
order by date_of_entry desc
) t where rownum <= 2
)
select t1.*
from last_results t1, last_results t2
where t1.lab_value - t2.lab_value >= 0.2;
Если нет проблем с совместимостью с другими серверами баз данныхтогда функция LAG () - это путь.