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

SQL Server:grupper efter fortløbende

I SQL Server kan du gøre dette med aggregering og forskel på rækkenumre:

select HevEvenementID, HteTypeEvenID,
       max(HjvNumeSequJour)
from (select t.*,
             row_number() over (partition by HevEvenementID order by HjvNumeSequJour) as seqnum_1,
             row_number() over (partition by HevEvenementID, HteTypeEvenID order by HjvNumeSequJour) as seqnum_2
      from yourtable t
     ) t
group by HevEvenementID, HteTypeEvenID, (seqnum_1 - seqnum_2)
order by max(HjvNumeSequJour);

Jeg tror, ​​at den bedste måde at forstå, hvordan dette virker, er ved at stirre på resultaterne af underforespørgslen. Du vil se, hvordan forskellen mellem de to værdier definerer grupperne af tilstødende værdier.




  1. Bruger du Web.Config til at konfigurere min SQL-databaseforbindelsesstreng?

  2. PDO Connect med en krypteret adgangskode?

  3. Knee-Jerk Vent-statistikker:SOS_SCHEDULER_YIELD

  4. MySQL-ydelse SLET eller OPDATERE?