sql >> Databasteknik >  >> RDS >> Sqlserver

Räkna Antal konsekutiv förekomst av värden i tabell

Ett tillvägagångssätt är skillnaden mellan radnummer:

select name, count(*) 
from (select t.*,
             (row_number() over (order by id) -
              row_number() over (partition by name order by id)
             ) as grp
      from t
     ) t
group by grp, name;

Logiken är lättast att förstå om du kör underfrågan och tittar på värdena för varje radnummer separat och sedan tittar på skillnaden.



  1. Hitta avståndet mellan två punkter med hjälp av latitud och longitud i mysql

  2. Vad kan få en Oracle ROWID att ändras?

  3. Kan inte returnera resultat från lagrad procedur med Python-markören

  4. Deklarera tupelstrukturen för en post i PL/pgSQL