यह रहा 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
जैसा कि आप देख सकते हैं कि यह बहुत लचीला है क्योंकि आपको केवल एक नंबर बदलना है।