एक सीटीई और विंडो फ़ंक्शन के साथ Row_Number()... हालांकि, मुझे ध्यान रखना चाहिए कि यह सबसे अच्छा होगा यदि आप OVER क्लॉज में एक उचित अनुक्रम (यानी पहचान int, डेटाटाइम) के साथ प्रतिस्थापित करें (NULL चुनें)।
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
रिटर्न
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