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

Hitung nilai duplikat berturut-turut dalam SQL

Saya akan menganggap bahwa id unik dan meningkat. Anda bisa mendapatkan jumlah nilai berurutan dengan menggunakan nomor baris yang berbeda. Berikut ini menghitung semua urutan:

select grp, value, min(id), max(id), count(*) as cnt
from (select t.*,
             (row_number() over (order by id) - row_number() over (partition by value order by id)
             ) as grp
      from table t
     ) t
group by grp, value;

Jika Anda ingin urutan 0s terpanjang:

select top 1 grp, value, min(id), max(id), count(*) as cnt
from (select t.*,
             (row_number() over (order by id) - row_number() over (partition by value order by id)
             ) as grp
      from table t
     ) t
group by grp, value
having value = 0
order by count(*) desc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana INTERSECT Bekerja di SQL Server

  2. Pengidentifikasi multi-bagian tidak dapat diikat

  3. Memecahkan Masalah Kinerja CPU SQL Server

  4. Cara Membuat Pernyataan Kolom Tambah untuk semua tabel dalam Database di SQL Server - Tutorial SQL Server / T-SQL Part 49

  5. Cara Mengekspor Data SQL Server Dari Tabel Ke File CSV