SQL 関数一覧 (E‐N) > MIN(集計関数)

グループの最小値、最低の値を求める

syntax

MIN ( [ DISTINCT | ALL ] expr )
return [ NUMBER ]

parameter

expr数値式

return

  • グループ内の最小の値を戻す。

avail

  • 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 関数 サンプルデータ
namedeptsalary
鈴木管理部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


日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)