Применить код к последним строкам для каждой строки

Есть таблица формата

Id date balance
1 01.01 5
1 01.02 15
1 01.03 20
1 01.04 20
1 01.05 40

и есть код

with cte_1 as (
select *,  ROW_NUMBER() over(partition by id order by balance) as  rank
from table
)

SELECT id,
    1 - 2 * sum((cast(balance as float) * (rank - 1) + balance / 2)) / count(*) / sum(balance) AS gini
FROM cte_1
GROUP BY id
ORDER BY id ASC

Как написать запрос, чтобы расчеты применялись для снимка в 4 строки для каждой строки. Вот так: Как должно считать

Для даты 01.04 берутся строки с датами 01.01 - 01.04, для 01.05 берутся строки 01.02-01.05 и т.п.


Ответы (0 шт):