Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server:kelompokkan secara berurutan

Di SQL Server, Anda dapat melakukan ini dengan agregasi dan perbedaan nomor baris:

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

Saya pikir cara terbaik untuk memahami cara kerjanya adalah dengan melihat hasil subquery. Anda akan melihat bagaimana perbedaan antara dua nilai mendefinisikan kelompok nilai yang berdekatan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tanggal tanpa waktu

  2. Kolom tidak valid dalam daftar pilih karena tidak terdapat dalam fungsi agregat atau klausa GROUP BY

  3. Aktifkan Database Mail di SQL Server (T-SQL)

  4. Bagaimana cara membatasi pengguna untuk mengakses objek hanya dari satu skema di SQL Server 2008?

  5. Nama objek tidak valid SQL Server 2008 R2 - Prosedur tersimpan