sql >> Database >  >> RDS >> Sqlserver

SQL Server:groeperen op opeenvolgende

In SQL Server kunt u dit doen met aggregatie en verschil van rijnummers:

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);

Ik denk dat de beste manier om te begrijpen hoe dit werkt, is door naar de resultaten van de subquery te staren. U zult zien hoe het verschil tussen de twee waarden de groepen aangrenzende waarden definieert.




  1. Hoe krijg ik de SUM-functie in MySQL om '0' te retourneren als er geen waarden worden gevonden?

  2. Gegevens uit de database in het tekstvak weergeven en bijwerken

  3. GlassFish 5 en MySQL-connector

  4. hoe om te gaan met een grote updatequery in mysql met laravel