指定された列内の最小データ値を返す集約関数です。
Synopsis
MIN([ALL | DISTINCT] expression)
引数
ALL オプション — すべての値に集約関数を適用します。ALL は、MIN によって返される値に影響を与えません。これは、SQL-92 の互換性のために用意されたものです。
DISTINCT オプション — それぞれの一意な値が考慮されるように指定します。DISTINCT は、MIN によって返される値に影響を与えません。これは、SQL-92 の互換性のために用意されたものです。
expression 任意の有効な式。通常、最小値が返される値を持つ列の名前。
概要
MIN 集約関数は、expression の最小値を返します。一般的に expression は、クエリで返される複数行の中のフィールドの名前 (または、フィールド名を 1 つ以上含む式) です。
MIN は、テーブルまたはビューを参照する SELECT クエリまたは SELECT サブクエリで使用できます。MIN は、一般のフィールド値とともに SELECT リストや HAVING 節で表示できます。
MIN は、WHERE 節では使用できません。SELECT がサブクエリの場合を除いて、JOIN の ON 節では MIN を使用できません。
その他の集約関数とは異なり、ALL および DISTINCT キーワードは MIN 内で何も実行しません。これらは、SQL–92 の互換性のために用意されたものです。
データ値
MIN によって使用される指定されたフィールドは、数値または非数値です。最小値は照合順で最小の値に定義されます。したがって、'a' が最小のアルファベット値です。数値フィールドでは、ゼロ (0) または負の数値が存在している場合でも、空文字列 ('') は最小値として認識されます。
データ・フィールドの NULL 値は、MIN 集約関数値を得る場合は無視されます。クエリから行が返されない場合や、すべての行に対するデータ・フィールド値が NULL の場合、MIN は NULL を返します。
現在のトランザクションで発生する変更
すべての集約関数と同様に、MIN も必ず、現在のトランザクションの分離レベルに関係なく、コミットされていない変更も含めてデータの現在の状態を返します。詳細は、"SET TRANSACTION" と "START TRANSACTION" を参照してください。
以下のクエリは、Sample.Employee データベース内の最低 (最小) 給与額を返します。
SELECT MIN(Salary) As LowSalary
     FROM Sample.Employee
以下のクエリは、Sample.Employee データベース内で検出された照合順の最低 (最小) および最高 (最大) の名前を返します。
SELECT MIN(Name), MAX(Name)
     FROM Sample.Employee
以下のクエリは、Sample.Employee データベース内の Home_State が VT である従業員の最低 (最小) 給与額を返します。
SELECT MIN(Salary)
     FROM Sample.Employee
     WHERE Home_State = 'VT'
以下のクエリは、Sample.Employee データベース内の Home_State ごとに、従業員数および最低 (最小) の従業員給与額を返します。
SELECT Home_State, 
     COUNT(Home_State) As NumEmployees, 
     MIN(Salary) As LowSalary
     FROM Sample.Employee
     GROUP BY Home_State
     ORDER BY LowSalary
関連項目
MAX