sql >> Database >  >> RDS >> Oracle

Oracle SQL hoe te groeperen op, maar meerdere rijen hebben als de groep op een later tijdstip wordt herhaald

Dit is een gaps-and-islands-probleem. Er zijn verschillende benaderingen, maar een eenvoudige gebruikt een verschil in rijnummer:

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. Splits een mysqldump-bestand op met meerdere databases, per database

  2. MySQL-winkelwagenstructuur

  3. Filteren op OFFSET-FETCH-opties in Select-query - SQL Server / TSQL-zelfstudie, deel 118

  4. psql-fout voor het herstellen van pgsl-back-up op cmd