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

Bagaimana cara meningkatkan penghitung di pilih

Dengan cte dan fungsi jendela Row_Number()... Namun, saya harus mencatat bahwa akan lebih baik jika Anda mengganti (Pilih NULL) dalam klausa OVER dengan urutan yang tepat (yaitu int identitas, datetime).

Declare @YourTable table (ColumnA int)
Insert Into @YourTable values (1),(0),(0),(0),(1),(0),(0),(0),(0),(1),(0),(1),(0),(0),(1),(0)

;with cte as (
    Select *,RN=Row_Number() over (Order By (Select Null)) from @YourTable
)
Select A.ColumnA
      ,ColumnB = sum(B.ColumnA)
 From  cte A
 Join  cte B on (B.RN<=A.RN)
 Group By A.ColumnA,A.RN
 Order By A.RN

Pengembalian

ColumnA ColumnB
1       1
0       1
0       1
0       1
1       2
0       2
0       2
0       2
0       2
1       3
0       3    
1       4
0       4
0       4
1       5
0       5


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jalankan Pemicu Hanya Saat Kolom Tertentu Diperbarui (SQL Server)

  2. Bagaimana cara membuat Sinonim Sql atau Alias ​​​​untuk Nama Basis Data?

  3. Deteksi Interval Anomali dengan SQL

  4. Format Mata Uang SQL Server 2005 dengan koma dan titik

  5. Bagaimana Anda mengatur autocommit dalam sesi SQL Server?