tôi có thể sử dụng một số giúp đỡ (tốt nhất là hướng dẫn của một dummy) để cập nhật bảng sau:Tính toán và bảng cập nhật với SMA của giá cổ phiếu đóng cửa ở 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;
Cột moving_average trống bây giờ. Tất cả các cột khác được phổ biến (trong thời gian này, tôi ổn với điều này là "tĩnh", nó không cần cập nhật khi tôi thêm hàng - mặc dù nếu điều này dễ làm, điều đó sẽ rất tuyệt). Đây là mức trung bình 20 ngày mà tôi hy vọng sẽ tính toán.
Tôi đã thử bằng cách thực hiện các bước ở đây đến hết khả năng của tôi:
How do I calculate a moving average using MySQL?
truy vấn của tôi là thế này:
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
Có tôi sửa đổi các truy vấn một cách chính xác? Cần phải làm gì để viết kết quả vào cột moving_average?
Khi tôi chạy ở trên, không có gì xảy ra (nó nói nó đang chạy, không có lỗi, sau khi để nó chạy trong một thời gian dài tôi vừa dừng lại). Cột moving_average vẫn có giá trị NULL.
Tôi cũng nhìn câu trả lời này: How to calculated multiple moving average in MySQL
Tuy nhiên, tôi không chắc chắn những gì tôi cần phải thay đổi câu trả lời cho bàn của tôi.
Mọi trợ giúp đều được đánh giá cao.
Tuyên bố bạn đã đăng không có thông báo cập nhật trong đó. Chỉ cần một lựa chọn. Đương nhiên, điều này có nghĩa là không có gì sẽ được cập nhật. – SchmitzIT