sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL hur man grupperar efter, men har flera rader om gruppen upprepas vid ett senare tillfälle

Detta är ett problem med luckor och öar. Det finns olika tillvägagångssätt, men en enkel använder en skillnad på radnummer:

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. Oracle skapa tabell med kolumnkommentarer

  2. mysqli:kan det förbereda flera frågor i ett uttalande?

  3. Att lägga till två av samma främmande nycklar till en enda modell som två olika fält i uppföljaren

  4. Extrahera xml-data med Oracle-fråga