Ecco il SQL Fiddle che dimostra la seguente query:
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
Nella tua domanda stavi chiedendo di sommare 3 valori consecutivi. Hai modificato la tua domanda dicendo che il numero di record consecutivi che devi sommare potrebbe cambiare. Nella query precedente devi semplicemente cambiare il m.RowNumber + 2
a tutto ciò di cui hai bisogno.
Quindi, se hai bisogno di 60, usa
m.RowNumber + 59
Come puoi vedere è molto flessibile poiché devi cambiare solo un numero.