Try this:
SELECT *
,ROUND(RecentMinRent * EXP(SUM(LOG(rate)) OVER (ORDER BY ID ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)),0) AS Column1
,ROUND(RecentMinRent * VALUE/MIN(VALUE)OVER(ORDER BY ID),0) AS Column2
FROM YourTable
Also, you could use recursive CTE to calculate column1, like this:
;WITH CTE AS
(
SELECT ID, VALUE, RecentMinRent, Rate, rate * RecentMinRent AS Column1
FROM YourTable
WHERE id = 1
UNION ALL
SELECT y.ID, y.VALUE, y.RecentMinRent, y.Rate, x.Column1 * y.Rate
FROM CTE x INNER JOIN YourTable y ON y.id = x.id + 1
)
SELECT ID, VALUE, RecentMinRent, Rate, Column1,ROUND(Column1,0)
FROM CTE
ORDER BY ID
OPTION (MAXRECURSION MAX);
Best regards,
Cosmog Hong
If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".