sql >> Database >  >> RDS >> Sqlserver

Tel het aantal opeenvolgende voorkomen van waarden in tabel

Een benadering is het verschil in rijnummers:

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;

De logica is het gemakkelijkst te begrijpen als u de subquery uitvoert en de waarden van elk rijnummer afzonderlijk bekijkt en vervolgens naar het verschil kijkt.



  1. VMware CPU Hot Plug vNUMA-effecten op SQL Server

  2. Hoe verwijder ik alle niet-alfanumerieke tekens uit een string in MySQL?

  3. Hoe FIELD() werkt in MariaDB

  4. Fix:"Onbekende tabel 'locales' in information_schema" in MariaDB