sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL hvordan man grupperer efter, men har flere rækker, hvis gruppen gentages på et senere tidspunkt

Dette er et hul-og-ø-problem. Der er forskellige tilgange, men en enkel bruger en forskel på rækkenummer:

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. Sekvens som standardværdi for en kolonne

  2. ASCII() eksempler – MySQL

  3. Hvordan opretter man en fremmednøgle, der også er en primær nøgle i MySQL?

  4. Begræns SQL-forespørgselsresultat i MySQL