我有一张桌子,显示 项目,PCT,月。
我们需要根据每个项目的PCT过去六个月来获取平均值。
谢谢
答案 0 :(得分:0)
您可以使用where
和group 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