Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

सेलेक्ट में काउंटर कैसे बढ़ाएं

एक सीटीई और विंडो फ़ंक्शन के साथ 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर v.अगला :STRING_AGG प्रदर्शन, भाग 2

  2. स्तंभ मान के आधार पर sql में उपसमूह एकत्रीकरण करना

  3. NOLOCK बनाम लेन-देन अलगाव स्तर

  4. 24 घंटे के सैन्य समय के रूप में प्रारूप समय?

  5. SQL सर्वर में डेटाबेस का नाम कैसे बदलें - SQL सर्वर / TSQL ट्यूटोरियल भाग 26