sql >> Database >  >> RDS >> Oracle

intervallen van niet-veranderende waarde ophalen uit een reeks getallen

U wilt groepen aangrenzende waarden identificeren. Een methode is om lag() . te gebruiken om het begin van de reeks te vinden, dan een cumulatieve som om de groepen te identificeren.

Een andere methode is het verschil in rijnummer:

select value, min(id) as from_id, max(id) as to_id
from (select t.*,
             (row_number() over (order by id) -
              row_number() over (partition by val order by id
             ) as grp
      from table t
     ) t
group by grp, value;


  1. Django-migraties:een primeur

  2. Hoe de volgende rijen te groeperen op niet-unieke waarde

  3. Syntaxisfout door het gebruik van een gereserveerd woord als tabel- of kolomnaam in MySQL

  4. Firebase DB gebruiken met lokale DB