ho potuto usare qualche aiuto (preferibilmente una guida fittizio) per aggiornare la tabella seguente:Il calcolo e la tabella di aggiornamento con media mobile di chiusura corsi azionari 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;
La colonna moving_average è ora vuota. Tutte le altre colonne sono popolate (per il momento, sto bene con questo essere "statico", non ha bisogno di aggiornare mentre aggiungo le righe - anche se se è facile farlo, sarebbe grandioso). È una media mobile di 20 giorni che spero di calcolare.
Ho provato eseguendo i passaggi qui al meglio delle mie capacità:
How do I calculate a moving average using MySQL?
La mia domanda è questa:
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
Avere ho modificato correttamente la domanda? Cosa deve essere fatto per scrivere i risultati nella colonna moving_average?
Quando eseguo quanto sopra, non succede nulla (dice che è in esecuzione, senza errori, dopo averlo lasciato funzionare per un lungo periodo l'ho appena interrotto). La colonna moving_average ha ancora valori NULL.
Ho anche guardato questa risposta: How to calculated multiple moving average in MySQL
Tuttavia, io sono sicuro di cosa ho bisogno per modificare la risposta per il mio tavolo.
Qualsiasi aiuto è apprezzato.
La dichiarazione che hai postato non contiene alcuna dichiarazione di aggiornamento. Solo una selezione. Naturalmente, questo significa che nulla verrà aggiornato. – SchmitzIT