Mysql
 sql >> Database >  >> RDS >> Mysql

Gruppo di prodotti cumulativo MySQL per

Se stai usando MySQL 8, puoi usare funzioni finestra per creare il prodotto cumulativo. Sfortunatamente, non esiste PROD() funzione di aggregazione/finestra in qualsiasi database SQL di cui sono a conoscenza, ma puoi 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 qui .