Si usa MySQL 8, podría usar funciones de ventana
para crear el producto acumulativo. Desafortunadamente, no hay PROD()
función de agregado/ventana en cualquier base de datos SQL que conozco, pero puedes emularlo usando 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