JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
グループの最小値、最低の値を求める
MIN ( [ DISTINCT | ALL ] expr )
return [ NUMBER ]
SQL でのみ使用可能。(PL/SQL の埋め込み SQL 含む)
MIN 集計関数の内容
グループにおける 数値式 expr の最小値を戻す。
MIN 関数の追加説明と注意事項
MIN 関数の引数に DISTINCT を使用して最小値を求めると重複した数値を1つのデータとして扱われる。
MIN 集計関数において ALL と DISTINCT の結果的差異はない。しかし DISTINCT を入れることで重複値を取り除く処理が追加されている可能性があるのでコスト高になる可能性はある。(おそらく CBO が最適化して同等になるだろう)
無指定の場合には MIN ( ALL expr ) となる。 NULL は最小値の判断に含まれない。
GROUP BY 句 を使用していない場合には選択による結果セットを1つのグループとして全体の中から最小の値を戻す。
複数列においての最小値を求めるには LEAST スカラー関数 を使用する。
注意
該当データが無い場合、NULL しかデータが存在しない場合には MIN 関数は NULL を戻す。
MIN 関数において NULL 値 は 「未定義」をあらわす。NULL のデータしか存在しない場合に 結果は NULL となる。
変換例: NVL ( MIN ( expr ) , 0 ) ⇒ NVL 関数
MIN 使用例
MIN 関数 サンプルデータ
name dept salary 鈴木 管理部 300,000 高橋 管理部 400,000 佐藤 開発部 500,000 小林 開発部 500,000 山本 開発部 200,000 青木 開発部 NULL
すべてのレコードにおいて一番低い給与額を求める
SQL> select MIN (salary) from min_sample;
MIN (SALARY)
-----------
200000
部門別における最も低い給与額
SQL> select dept, MIN (salary) from min_sample group by dept;
DEPT MIN (SALARY)
------------ -----------
管理部 300000
開発部 200000
給与格差が2倍を超えている部門の最高賃金と最低賃金も求める。⇒ HAVING 句の使い方
SQL> select dept, MIN (salary), max (salary)
2 from min_sample
3 group by dept
4 having max (salary) > min (salary)*2;
DEPT MIN (SALARY) MAX (SALARY)
------------ ----------- -----------
開発部 200000 500000