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

Oracle SQL cara mengelompokkan, tetapi memiliki beberapa baris jika grup diulang di kemudian hari

Ini adalah masalah kesenjangan dan pulau. Ada pendekatan yang berbeda, tetapi yang sederhana menggunakan perbedaan nomor baris:

with paaf as (<your first query here>
     )
select paaf.assignment_id,
       paaf.position_id,
       min(paaf.effective_start_date) as effective_start_date,
       max(paaf.effective_end_date) as effective_end_date
from (select paaf.*,
             row_number() over (order by effective_start_date) as seqnum,
             row_number() over (partition by position_id order by effective_start_date) as seqnum_p
      from paaf
     ) paaf
group by (seqnum - seqnum_p), position_id, assignment_id;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsing nama tabel dari sekumpulan pernyataan SQL

  2. cd:-M:opsi tidak valid

  3. Cara menggunakan fungsi barang di Oracle

  4. count(*) tidak dapat dipilih dalam PL/SQL

  5. Migrasi Lambat Ke Cloud