我可以利用一些幫助(最好是假人的指南)爲下表更新簡單移動平均線收盤價格更新表:計算並與MYSQL
CREATE TABLE `SYMBOL` (
`day` date NOT NULL,
`open` decimal(8,3) DEFAULT NULL,
`high` decimal(8,3) DEFAULT NULL,
`low` decimal(8,3) DEFAULT NULL,
`close` decimal(8,3) DEFAULT NULL,
`volume` bigint(20) DEFAULT NULL,
`adj_close` decimal(8,3) DEFAULT NULL,
`moving_average` decimal(8,3) DEFAULT NULL,
PRIMARY KEY (`day`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
的MOVING_AVERAGE列現在是空的。所有其他列都被填充(目前,我確定這是「靜態」,它不需要更新,因爲我添加了行 - 儘管如果這很容易做到,那就太棒了)。這是我希望計算的20日移動平均線。
How do I calculate a moving average using MySQL?
我的查詢是這樣的:
我已經在這裏進行的步驟,將盡我所能試圖
SELECT
`close`,
(
SELECT
AVG(`close`) AS moving_average
FROM
SYMBOL T2
WHERE
(
SELECT
COUNT(*)
FROM
SYMBOL T3
WHERE
`day` BETWEEN T2.day AND T1.day
) BETWEEN 1 AND 20
)
FROM
SYMBOL T1
有我修改正確的查詢?將結果寫入move_average列需要做什麼?
當我運行上述,沒有任何反應(它說,它的運行,沒有錯誤,讓它運行很長一段時間,我剛剛停止它)。列moving_average仍然具有NULL值。
我也看了這樣的回答: How to calculated multiple moving average in MySQL
不過,我不能確定我需要改變我的表的答覆。
任何幫助表示讚賞。
您發佈的聲明中沒有更新聲明。只是一個選擇。當然,這意味着什麼都不會得到更新。 – SchmitzIT