Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Conteggio Numero di occorrenze consecutive di valori nella tabella

Un approccio è la differenza dei numeri di riga:

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;

La logica è più facile da capire se si esegue la sottoquery e si osservano i valori di ciascun numero di riga separatamente e quindi si osserva la differenza.