SQL Server的滚动平均值

问题描述 投票:-1回答:1
select
    Date, [Close],
    avg([close]) over (order by date asc rows 4 preceding) as MA10
from 
    dbo.APPL

该查询返回滚动4天平均股价。不过,我想显示值NULL如果前几天都不少于4个。

如何调整在SQL Server?

sql-server sql-server-2014 rolling-average
1个回答
-1
投票

我认为JeffUK意思做这样的事情:

select
    Date, [Close],
    case when days >= 4 then MA10 end as MA10
from
(
    select
        Date, [Close],
        avg([close]) over (order by date asc rows 4 preceding) as MA10,
        count([close]) over (order by date asc rows 4 preceding) as days
    from 
        dbo.APPL

) X
© www.soinside.com 2019 - 2024. All rights reserved.