Ако използвате MySQL 8, можете да използвате функции на прозореца
за създаване на кумулативен продукт. За съжаление няма PROD()
функция aggregate / window във всяка SQL база данни, за която знам, но можете да го емулирате с помощта на EXP(SUM(LOG(factor)))
:
SELECT
quote_date,
security_id,
tr,
1000 * (EXP(SUM(LOG(1 + COALESCE(tr, 0)))
OVER (PARTITION BY security_id ORDER BY quote_date)))
AS accum_index
FROM stock_prices