计算移动平均数MySQL?
美好的一天,
我正在使用以下代码来计算9天移动平均线。
SELECT SUM(close)FROM tbl
WHERE date <= '2002-07-05'
AND name_id = 2
ORDER BY date DESC
LIMIT 9
但这是行不通的,因为它会在调用限制之前先计算所有返回的字段。换句话说,它将计算该日期之前或等于该日期的所有关闭时间,而不仅仅是最后9个。
因此,我需要从返回的选择中计算出SUM,而不是直接计算出来。
IE浏览器 从SELECT中选择SUM …
现在我将如何去做,这是非常昂贵的还是有更好的方法?
回答:
使用类似
SELECT sum(close) as sum,
avg(close) as average
FROM (
SELECT
(close)
FROM
tbl
WHERE
date <= '2002-07-05'
AND name_id = 2
ORDER BY
date DESC
LIMIT 9 ) temp
内查询返回的所有过滤的行desc
顺序,然后avg
,sum
向上的行返回。
之所以query
被你给不工作是由于该事实sum
,首先计算和LIMIT
后子句应用sum
已经计算出来了,给你的sum
所有行目前的
以上是 计算移动平均数MySQL? 的全部内容, 来源链接: utcz.com/qa/428684.html