Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Cenários e etapas obtêm o problema da última alteração


Hmmm . . . você pode obter a data 44 mais cedo após a última data não 44 usando:
select min(start_date)
from t
where t.start_date > (select max(t2.start_date)
                      from t t2
                      where t2.step_key <> 44
                     );

Acho que é isso que você está pedindo.

Você também pode usar funções de janela. Supondo que a linha mais recente seja "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;