过去6个月的价值

时间:2019-02-26 14:45:02

标签: sql sql-server

我有一张桌子,显示 项目,PCT,月。

我们需要根据每个项目的PCT过去六个月来获取平均值。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用wheregroup by项目来过滤最近6个月的内容:

select  Project
,       avg(PCT)
from    YourTable
where   DateColumn > dateadd(month, -6, now())
group by
        Project

(查询假定该列的类型为datetime,名称为DateColumn。)

答案 1 :(得分:0)

假设您每个月都有数据,则可以使用窗口功能:

select t.*,
       avg(pct) over (partition by project
                      order by month
                      rows between 5 preceding and current row
                     ) as avg_pct_6
from t;

这假设您想要的平均值是六个月,包括当前月份。如果您不包括当前月份,则:

                      rows between 6 preceding and 1 preceding