sql >> Base de Datos >  >> RDS >> Sqlserver

Recuento Número de ocurrencias consecutivas de valores en la tabla

Un enfoque es la diferencia de números de fila:

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 lógica es más fácil de entender si ejecuta la subconsulta y observa los valores de cada número de fila por separado y luego observa la diferencia.