gpt4 book ai didi

mysql - 计算移动平均线 MySQL?

转载 作者:行者123 更新时间:2023-11-30 00:51:53 24 4
gpt4 key购买 nike

美好的一天,

我使用以下代码来计算 9 天移动平均线。

SELECT SUM(close)
FROM tbl
WHERE date <= '2002-07-05'
AND name_id = 2
ORDER BY date DESC
LIMIT 9

但是它不起作用,因为它在调用 limit 之前首先计算所有返回的字段。换句话说,它将计算该日期之前或等于该日期的所有收盘价,而不仅仅是最后 9 个收盘价。

所以我需要根据返回的选择计算 SUM,而不是直接计算。

IE。从 SELECT 中选择 SUM...

现在我该怎么做?它的成本是否很高或者是否有更好的方法?

最佳答案

如果您想要每个日期的移动平均值,请尝试以下操作:

SELECT date, SUM(close),
(select avg(close) from tbl t2 where t2.name_id = t.name_id and datediff(t2.date, t.date) <= 9
) as mvgAvg
FROM tbl t
WHERE date <= '2002-07-05' and
name_id = 2
GROUP BY date
ORDER BY date DESC

它使用相关子查询来计算 9 个值的平均值。

关于mysql - 计算移动平均线 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com