Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Contar Número de Ocorrências Consecutivas de valores na Tabela


Uma abordagem é a diferença de números de linha:
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;

A lógica é mais fácil de entender se você executar a subconsulta e observar os valores de cada número de linha separadamente e, em seguida, observar a diferença.