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 に答える