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

Permintaan sql Oracle untuk mengelompokkan catatan berurutan berdasarkan tanggal

Dengan asumsi kita bisa menggunakan start_date untuk mengidentifikasi catatan yang berdekatan (yaitu, tidak ada celah), maka Anda dapat menggunakan pendekatan selisih nomor baris:

select id, min(start_date) as mn_date, max(end_date) as mx_date, rate
from (select t.*,
             row_number() over (partition by id order by start_date) as seqnum_i,
             row_number() over (partition by id, rate order by start_date) as seqnum_ir
      from t
     ) t
group by id (seqnum_i - seqnum_ir), rate;

Untuk melihat cara kerjanya, lihat hasil subquery. Anda seharusnya dapat "melihat" bagaimana perbedaan dari dua nomor baris menentukan grup record yang berdekatan dengan rate yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk memasukkan data secara massal ke dalam database Oracle

  2. % masuk ke Pernyataan Siap Java

  3. Bagaimana cara mengatur jalur yang tepat ke file TNSNAMES di aplikasi C #?

  4. CX_Oracle - mengimpor data dari Oracle ke kerangka data Pandas

  5. Oracle- Penggabungan luar kiri pada beberapa tabel tidak mengembalikan nilai nol yang diinginkan