Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tăng bộ đếm trong lựa chọn

Với một cte và hàm cửa sổ Row_Number () ... Tuy nhiên, tôi nên lưu ý rằng tốt nhất là bạn nên thay thế (Chọn NULL) trong mệnh đề OVER bằng một chuỗi thích hợp (tức là int, 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

Trả lại

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. Cột nhận dạng trong tham số có giá trị bảng trong thủ tục, cách xác định DataTable

  2. Nối các hàng từ một cột được tính toán bí danh

  3. Tạo câu lệnh CREATE INDEX trong SQL Server

  4. Hàm COALESCE trong TSQL

  5. T-SQL cách sửa đổi giá trị trước khi chèn