Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Skenario dan Langkah mendapatkan masalah perubahan terakhir

Hmmm . . . Anda bisa mendapatkan tanggal 44 paling awal setelah tanggal non-44 terakhir menggunakan:

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

Saya pikir ini yang Anda minta.

Anda dapat menggunakan fungsi jendela juga. Dengan asumsi bahwa baris terbaru adalah "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. Mengapa saya tidak dapat menggunakan variabel bind dalam pernyataan DDL/SCL dalam SQL dinamis?

  2. Permintaan sql Oracle perlu diubah berdasarkan zona waktu

  3. Bagaimana saya bisa membuat nama tabel secara kondisional untuk pernyataan SQL CREATE TABLE?

  4. ODP.NET Oracle.ManagedDataAcess acak kesalahan ORA-12570

  5. oracle Pilih tanggal untuk item yang terjual dalam waktu 1 menit satu sama lain