计算移动平均数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顺序,然后avgsum向上的行返回。

之所以query被你给不工作是由于该事实sum,首先计算和LIMIT后子句应用sum已经计算出来了,给你的sum所有行目前的

以上是 计算移动平均数MySQL? 的全部内容, 来源链接: utcz.com/qa/428684.html

回到顶部