Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kumulative MySQL-Produktgruppe nach

Wenn Sie MySQL 8 verwenden, können Sie Fensterfunktionen um das kumulierte Produkt zu erstellen. Leider gibt es kein PROD() Aggregat / Window-Funktion in jeder mir bekannten SQL-Datenbank, aber Sie können es mit EXP(SUM(LOG(factor))) emulieren :

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 hier .