Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Scenariusze i kroki mają problem z ostatnią zmianą

Hmmm . . . możesz uzyskać najwcześniejszą datę 44 po ostatniej dacie innej niż 44, używając:

select min(start_date)
from t
where t.start_date > (select max(t2.start_date)
                      from t t2
                      where t2.step_key <> 44
                     );

Myślę, że właśnie o to prosisz.

Możesz także korzystać z funkcji okna. Zakładając, że najnowszy wiersz to „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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wymusić elementy tworzenia xmlforest, nawet jeśli wartość wyrażenia ma wartość null?

  2. Polecenia tworzenia kopii zapasowej listy RMAN

  3. Jaki jest najlepszy sposób sprawdzenia, z której wersji klienta Oracle korzystam?

  4. Wiersze Oracle Delete zgodne z wieloma wartościami

  5. AKTUALIZACJA ODP.NET... POWRÓT DO... wielu wierszy, Typ parametru