DECLARE @Sample TABLE ( i INT, j INT ); INSERT @Sample VALUES (1, 1), (1, 2), (1, 4), (1, 3), (1, 6), (1, 5), (1, 8), (1, 7) SELECT i, j, SUM(j) OVER (PARTITION BY i ORDER BY j) AS RunningTotal, SUM(j) OVER (PARTITION BY i ORDER BY j RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotalFormal, SUM(j) OVER (PARTITION BY i ORDER BY j RANGE UNBOUNDED PRECEDING) AS RunningTotalFormal, SUM(j) OVER (PARTITION BY i ORDER BY j ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotalFormal, SUM(j) OVER (PARTITION BY i ORDER BY j ROWS BETWEEN 2147483647 PRECEDING AND CURRENT ROW) AS RunningTotalOther FROM @Sample