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

वर्तमान पंक्ति का संचयी मान + पिछली पंक्तियों का योग

इस तरह:

;WITH cte
AS
(
   SELECT ColumnB, SUM(ColumnA) asum 
   FROM @t 
   gROUP BY ColumnB

), cteRanked AS
(
   SELECT asum, ColumnB, ROW_NUMBER() OVER(ORDER BY ColumnB) rownum
   FROM cte
) 
SELECT (SELECT SUM(asum) FROM cteRanked c2 WHERE c2.rownum <= c1.rownum),
  ColumnB
FROM cteRanked c1;

यह आपको देना चाहिए:

ColumnA    ColumnB
3             a
6             b
10            c
15            d

यहां एक लाइव डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक कॉलम में दो टेबल / कॉन्टेनेट वैल्यू मर्ज करें

  2. SQL सर्वर आंतरायिक प्रदर्शन समस्याओं को काम करता है

  3. SQL सर्वर में केस संवेदनशील चर

  4. मैं अपने SQL सर्वर पर OFFSET/FETCH क्वेरी क्यों नहीं पूछ सकता?

  5. SQL सर्वर डेटाबेस में एकाधिक तालिकाओं में कॉलम में डिफ़ॉल्ट बाधाओं को जोड़ने के लिए स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 94