By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
30 rows affected
ID | Amount | (No column name) |
---|---|---|
1 | 107.35 | null |
2 | 105.41 | null |
3 | 104.63 | null |
4 | 106.70 | null |
5 | 108.70 | null |
6 | 110.21 | null |
7 | 108.80 | null |
8 | 108.91 | null |
9 | 108.50 | null |
10 | 106.66 | null |
11 | 105.20 | null |
12 | 106.50 | null |
13 | 108.27 | null |
14 | 109.72 | null |
15 | 111.53 | null |
16 | 112.80 | null |
17 | 109.03 | null |
18 | 115.31 | null |
19 | 115.56 | 439.98 |
20 | 116.85 | 440.89 |
21 | 116.08 | 440.74 |
22 | 117.61 | 443.77 |
23 | 118.31 | 441.24 |
24 | 119.25 | 451.27 |
25 | 118.45 | 451.08 |
26 | 118.43 | 453.91 |
27 | 120.16 | 456.27 |
28 | 122.50 | 459.57 |
29 | 125.57 | 458.11 |
30 | 125.65 | 466.71 |
ID | Amount | (No column name) |
---|---|---|
1 | 107.35 | null |
2 | 105.41 | null |
3 | 104.63 | null |
4 | 106.70 | null |
5 | 108.70 | null |
6 | 110.21 | null |
7 | 108.80 | null |
8 | 108.91 | null |
9 | 108.50 | null |
10 | 106.66 | null |
11 | 105.20 | null |
12 | 106.50 | null |
13 | 108.27 | null |
14 | 109.72 | null |
15 | 111.53 | null |
16 | 112.80 | null |
17 | 109.03 | null |
18 | 115.31 | null |
19 | 115.56 | 439.98 |
20 | 116.85 | 440.89 |
21 | 116.08 | 440.74 |
22 | 117.61 | 443.77 |
23 | 118.31 | 441.24 |
24 | 119.25 | 451.27 |
25 | 118.45 | 451.08 |
26 | 118.43 | 453.91 |
27 | 120.16 | 456.27 |
28 | 122.50 | 459.57 |
29 | 125.57 | 458.11 |
30 | 125.65 | 466.71 |
SELECT YT.ID,
YT.Amount,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY G.Grp ORDER BY ID) < @X+1 THEN NULL
ELSE SUM(Amount) OVER (PARTITION BY G.Grp ORDER BY ID
ROWS BETWEEN 3 PRECEDING AND CURRENT ROW)
END
FROM dbo.YourTable YT
CROSS APPLY (VALUES(ID % @N))G(Grp)
ORDER BY YT.ID;