Nếu đang sử dụng MySQL 8, bạn có thể sử dụng chức năng cửa sổ
để tạo ra sản phẩm tích lũy. Rất tiếc, không có PROD()
Hàm tổng hợp / cửa sổ trong bất kỳ cơ sở dữ liệu SQL nào mà tôi biết, nhưng bạn có thể mô phỏng nó bằng cách sử dụng 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