Hừ! . . bạn có thể nhận được ngày 44 sớm nhất sau ngày không phải 44 cuối cùng bằng cách sử dụng:
select min(start_date)
from t
where t.start_date > (select max(t2.start_date)
from t t2
where t2.step_key <> 44
);
Tôi nghĩ đây là những gì bạn đang yêu cầu.
Bạn cũng có thể sử dụng các chức năng cửa sổ. Giả sử rằng hàng gần đây nhất là "44":
select t.*
from (select t.*,
row_number() over (order by start_date) as seqnum,
row_number() over (partition by step_key order by start_date) as seqnum_sk
from t
) t
where step_key = 44 and seqnum = seqnum_sk
order by start_date
fetch first 1 row only;