ROWSで、区分内の各行を求める集約関数の計算対象の行を定義します。
ROWSが指定される場合、区分内の各行を求める集約関数の計算には、ROWS句の中の行のサブセットのみが含まれます。
ROWS句がない場合は、区分内のすべての行が計算に含まれます。
sales_tblテーブルの店舗ごとの3ヶ月の移動平均売上げを計算するには、次のようにStoreID別に区分し、SMonthによって順序付けして、現在行から2つ前の行までを対象に計算を実行します。
SELECT StoreID, SMonth, ProdID, Sales, AVG(Sales) OVER (PARTITION BY StoreID ORDER BY SMonth ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) FROM sales_tbl; StoreID SMonth ProdID Sales Moving Avg(Sales) ------- ------ ------ --------- ----------------- 1001 1 C 35000.00 35000.00 1001 2 C 25000.00 30000.00 1001 3 C 40000.00 33333.33 1001 4 C 25000.00 30000.00 1001 5 C 30000.00 31666.67 1001 6 C 30000.00 28333.33 1002 1 C 40000.00 40000.00 1002 2 C 35000.00 37500.00 1002 3 C 110000.00 61666.67 1002 4 C 60000.00 68333.33 1002 5 C 35000.00 68333.33 1002 6 C 100000.00 65000.00