举个例子我有以下交易表,每个部门的交易价值为每个三个月。
TransactionID | Department | Trimester | Year | Value | Moving Avg
1 | Dep1 | T1 | 2014 | 13 |
2 | Dep1 | T1 | 2014 | 43 |
3 | Dep1 | T2 | 2014 | 36 |
300 | Dep1 T1 | 2017 | 28 |
301 | Dep2 T1 | 2014 | 24 |
我想计算来自同一部门的每笔交易的移动平均线,从当前行的三个月前的6个三个月到两个月的窗口。在2017年的T1中交易300的示例,我想要将Dep1的交易价值的平均值从T1-2015提高到T2-2016。
如何在SQL Server 2014中使用滑动窗口功能实现此目的。我的想法是我应该使用类似
的内容SELECT
AVG(VALUES) OVER
(PARTITION BY DEPARTMENT ORDER BY TRIMESTER,
YEAR RANGE [Take the range from previous 6 to 2 trimesters])
我们如何定义RANGE
子句。我想我无法使用ROWS
,因为窗口的行数是未知的。
中位数相同的问题。我们如何重写计算中位数而不是平均值?