通常は並べ替えの影響を受けない集計 (min、max、stdev など) の OVER() 句内に order by がある場合、それは実行中の小計になります。より完全な処理については、以下の質問に対する Justin Cave の回答を参照してください。
分析関数としての Oracle MIN - ORDER BY の奇妙な動作?
編集
ここで sqlfiddle を参照します。
http://www.sqlfiddle.com/#!4/a0f10/33
最初のクエリ:
SELECT B1.ST
, B1.ET
, MAX(B1.ET)
OVER(PARTITION BY B1.MAS_DIV_KEY
,B1.STN_KEY
,B1.SBSC_GUID_KEY
ORDER BY B1.ST
) AS TEST_COL
FROM AM_PROGRAM_TUNING_EVENT_TMP1 B1
ORDER BY B1.ST;
... 戻り値
ST ET TEST_COL
March, 28 2012 11:00:00-0700 March, 28 2012 11:05:00-0700 March, 28 2012 11:05:00-0700
March, 28 2012 11:03:00-0700 March, 28 2012 11:15:00-0700 March, 28 2012 11:50:00-0700
March, 28 2012 11:03:00-0700 March, 28 2012 11:50:00-0700 March, 28 2012 11:50:00-0700
March, 28 2012 11:10:00-0700 March, 28 2012 11:30:00-0700 March, 28 2012 11:50:00-0700
March, 28 2012 11:20:00-0700 March, 28 2012 11:50:00-0700 March, 28 2012 11:50:00-0700
それでは、これを分解してみましょう... 最初の行は個別の ST であるため、その時点までの MAX はその行にあるものです。次の行、ST は一意ではありません。したがって、その時点までのすべての行の MAX は 11:15 ではなく、ST 11:03 の両方の行の 11:50 です。最後の 2 行には 11:50 以降は ET がないため、残りのすべての行についてはそれが表示されます。OVER 句で ORDER BY を使用したので、それを Oracle に指示しました。