MIN ウィンドウ関数は入力式の最小値を返します。MIN 関数は数値に対してはたらき、NULL 値は無視します。
構文
MIN ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
引数
- expression
-
関数の対象となる列または式。
- ALL
-
引数 ALL を指定すると、この関数は式から重複する値をすべて保持します。ALL がデフォルトです。DISTINCT はサポートされません。
- OVER
-
集計関数に使用するウィンドウ句を指定します。OVER 句は、ウィンドウ集計関数を標準セット集計関数と区別します。
- PARTITION BY expr_list
-
1 つ以上の式で MIN 関数のウィンドウを定義します。
- ORDER BY order_list
-
各パーティション内の行をソートします。PARTITION BY が指定されていない場合、ORDER BY はテーブル全体を使用します。
- frame_clause
-
ORDER BY 句が集計関数に使用される場合、明示的なフレーム句が必要です。フレーム句は順序付けた結果内の行のセットを含めるか除外して、関数のウィンドウの行のセットを絞り込みます。フレーム句は ROWS キーワードおよび関連する指定子で構成されます。「ウィンドウ関数の構文の概要」を参照してください。
データ型
データ型を入力として受け入れます。同じデータ型を expression として返します。
例
次の例では、データウィンドウの先頭から販売 ID、数量、最小数を示します。
select salesid, qty,
min(qty) over
(order by salesid rows unbounded preceding)
from winsales
order by salesid;
salesid | qty | min
---------+-----+-----
10001 | 10 | 10
10005 | 30 | 10
10006 | 10 | 10
20001 | 20 | 10
20002 | 20 | 10
30001 | 10 | 10
30003 | 15 | 10
30004 | 20 | 10
30007 | 30 | 10
40001 | 40 | 10
40005 | 10 | 10
(11 rows)
WINSALES テーブルの説明については、「ウィンドウ関数例のサンプルテーブル」を参照してください。
次の例では、制限されたフレームで販売 ID、数量、および最小数を示します。
select salesid, qty,
min(qty) over
(order by salesid rows between 2 preceding and 1 preceding) as min
from winsales
order by salesid;
salesid | qty | min
---------+-----+-----
10001 | 10 |
10005 | 30 | 10
10006 | 10 | 10
20001 | 20 | 10
20002 | 20 | 10
30001 | 10 | 20
30003 | 15 | 10
30004 | 20 | 10
30007 | 30 | 15
40001 | 40 | 20
40005 | 10 | 30
(11 rows)