kapanış hisse senedi fiyatlarının basit hareketli ortalamaya güncellenmesi masanın:hesaplanması ve 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 sütun artık boş. Diğer tüm sütunlar (- bu, bu harika olurdu yapmak kolaydır eğer olsa şu an için, ben bu varlık "statik", ben satır eklemek olarak güncellemek zorunda değildir ile iyiyim) doldurulur. Hesaplamayı umduğum 20 günlük hareketli bir ortalama.
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
Ben doğru sorguyu modifiye mı:
How do I calculate a moving average using MySQL?
Benim sorgu şudur:
benim geldiğince en iyi şekilde buraya adımları uygulayarak denediniz mi? Sonuçları hareketli_ortam sütununa yazmak için ne yapılması gerekiyor?
Yukarıda hiçbir şey olmuyor çalıştırmak
(buna ben sadece durdu uzun süre çalıştırmak icar sonra çalışan, hiç hata diyor). Moving_average sütununun hala NULL değerleri var.Ben de bu cevabı baktı: How to calculated multiple moving average in MySQL
Ancak, benim tablo için cevap değiştirmek için gerekenleri emin değilim.
Herhangi bir yardım için teşekkür ederiz.
Şahsen seçeneği tercih işi yapan bir saklı yordam oluşturma, tablodaki her satır güncelleştiren bir update
sorgusu oluşturun:
Deftere deyimi içinde hiçbir güncelleme deyimi vardır. Sadece bir seçim. Doğal olarak, bu hiçbir şeyin güncellenmeyeceği anlamına gelir. – SchmitzIT