sql >> Databasteknik >  >> RDS >> Oracle

få intervall med oföränderligt värde från en talföljd

Du vill identifiera grupper av angränsande värden. En metod är att använda lag() för att hitta början av sekvensen, sedan en kumulativ summa för att identifiera grupperna.

En annan metod är skillnaden mellan radnummer:

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. Postgres Interval Spring Data Dynamic Parameter fungerar inte

  2. Skulle följande primärnyckeländring fungera med `pt-online-schema-change`?

  3. PHP &MySQL:Konvertera lagrad TIMESTAMP till användarens lokala tidszon

  4. Ta bort tom tagg från xmltype oracle