4

我有一个查询计算过去 7 天表中的移动平均值。我的表有两列 date_of_data 是日期类型,是一个日期系列,间隔为一天,val 是浮点数。

with B as
(SELECT   date_of_data, val
FROM mytable
group by date_of_data
order by date_of_data)
select
    date_of_data,val, avg(val) over(order by date_of_data rows 7 preceding)mean7
from B
order by date_of_data;

我想计算 7 天的移动过滤器。这意味着对于每一行,移动窗口将包含最后 3 天、行本身和 3 个后续行。我找不到考虑后续行的命令。有人可以帮我吗?

4

1 回答 1

11

尝试这个:

select date_of_data, 
       val, 
       avg(val) over(order by date_of_data ROWS BETWEEN 3 preceding AND 3 following) as mean7
from mytable
order by date_of_data;
于 2013-01-25T21:48:09.120 回答