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

मूविंग एवरेज / रोलिंग एवरेज

यह रहा SQL Fiddle जो निम्न क्वेरी को प्रदर्शित करता है:

WITH TempS as 
(
  SELECT s.SNo, s.value, 
  ROW_NUMBER() OVER (ORDER BY s.SNo) AS RowNumber
  FROM MyTable AS s
)
SELECT m.SNo, m.value,
(
  SELECT SUM(s.value) 
  FROM TempS AS s
  WHERE RowNumber >= m.RowNumber
  AND RowNumber <= m.RowNumber + 2
) AS Sum3InRow
FROM TempS AS m

अपने प्रश्न में आप लगातार 3 मानों का योग करने के लिए कह रहे थे। आपने अपने प्रश्न को यह कहते हुए संशोधित किया कि आपको जितने लगातार रिकॉर्ड जोड़ने की आवश्यकता है, वह बदल सकता है। उपरोक्त क्वेरी में आपको m.RowNumber + 2 . को बदलने की सरल आवश्यकता है आपको जो कुछ भी चाहिए।

तो अगर आपको 60 की जरूरत है, तो उपयोग करें

m.RowNumber + 59

जैसा कि आप देख सकते हैं कि यह बहुत लचीला है क्योंकि आपको केवल एक नंबर बदलना है।



  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 सर्वर कैसे स्थापित करें

  2. प्रभावित तालिका SQL लॉग करने के लिए ट्रिगर बनाएं?

  3. SQL सर्वर - एक संग्रहीत कार्यविधि समाप्त होने तक तालिका को कैसे लॉक करें

  4. प्रत्येक लूप के लिए SQL सर्वर

  5. पैरामीटरयुक्त गतिशील एसक्यूएल क्वेरी