0

这是我当前的查询:

SELECT 
item_id, 
date,
(avg *  stddev(value) over(partition by item_id order by to_date(date,'yyyymm')
RANGE BETWEEN INTERVAL '11' MONTH PRECEDING AND CURRENT ROW)
+
price *  stddev(value2) OVER(PARTITION BY item_id ORDER BY to_date(date,'yyyymm')
RANGE BETWEEN INTERVAL '11' MONTH PRECEDING AND CURRENT ROW)
) as a
from table1

有没有办法复制RANGE BETWEENSQL Server 中的功能?介于当前月份和前 11 个月之间。

4

1 回答 1

1

从 2012 版本开始,SQL Server 添加了对窗口函数的支持,就像您在 Oracle 中所做的一样。唯一的区别是日期处理,因为 Oracle 对日期间隔文字值有独特的语法(例如“INTERVAL '11' MONTH”)。

有关 SQL Server 2012 中窗口函数的信息,请参阅http://technet.microsoft.com/en-us/library/ms189461.aspx

有关日期范围处理的信息,请参阅http://technet.microsoft.com/en-us/library/ms186724.aspx

于 2013-11-12T19:51:29.930 回答