先行する91日間のウィンドウの平均料金を返すSQL問合せを作成します。私は週の最初の曜日に日付を切り捨て、91日の平均が91日にの前にこの日までになると期待しています。Oracle Analytic Preceding間違った予期しない結果を返します。
しかし、91日平均には、私が切り捨てた現在の週が含まれているように見えます。
問合せ:
SELECT
week AS WEEK,
to_char(week,'ww-yyyy') AS Week_num
--Sum of the charges for the previous 91 days/91 will give you avg charges per day for the last 91 days
--Need to count days regardless of if there are any charges on that day
,(SUM(CHARGES) OVER (ORDER BY WEEK RANGE INTERVAL '91' DAY PRECEDING))/91 MV_91_DAY_AVG
FROM
(
SELECT
--Truncate date down to first of week. Goal is to make 91 day preceding being at this date.
TRUNC(TRANS.ORIG_POST_DATE,'WW') AS WEEK
,SUM(TRANS.AMOUNT) AS CHARGES
FROM TRANS
WHERE
TRANS.DETAIL = "Charge"
GROUP BY TRUNC(TRANS.ORIG_POST_DATE,'WW')
)
ORDER BY WEEK
電流出力:
上記の鉱山に似た質問がある場合は、YouTubeのsheepsqueezersチャネル(http://www.youtube.com/user/sheepsqueezersYT/search)にあるOracle Analytic機能の概要を確認することを強くお勧めします。 ?query = analytic、またはhttp://www.sheepsqueezers.com/。 – Cimplicity