Sve*_*enB 4 sql t-sql average moving-average sql-server-2012
我想在select语句中为一堆值列合并两个平均计算.
请参阅此链接以获取我的简化表结构,包括所需的输出计算:Pastebin
1)移动平均线:
Month1 =该月份value1-column的值,Month2 =如果sum == 0则写入0,否则为avg(Month1和Month2),依此类推.
因此,对于每种产品,我都希望在一年内每个月的移动平均值.我在Excel中设置了这个,但我无法将表达式传递给sql.
2)总体平均值:
对于每个产品,计算所有年份的平均值,并将计算值复制到该产品的所有行.
我希望你能帮我解决这个问题.看起来我需要一个程序,但也许它只是一个简单的陈述.
SQL-Server 2012支持执行此操作所需的分析功能:
SELECT Product,
Month,
Year,
Value,
AVG_YTD = AVG(Value) OVER(PARTITION BY Year ORDER BY Month),
AVG_Year = AVG(Value) OVER(PARTITION BY Product, Year),
AVG_Overall = AVG(Value) OVER(PARTITION BY Product)
FROM T;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5366 次 |
| 最近记录: |