sql >> Base de Datos >  >> RDS >> Mysql

Grupo de productos acumulativo de MySQL por

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

dbfiddle aquí .