MINは集約関数で、全行に渡る式の最小値を求めます。 (集約 (集合関数)を参照してください。) MINは組み込みのデータ型に対してのみ適用可能です。(これにはCHAR、VARCHAR、DATE、TIME等が含まれます。)
MIN ( [ DISTINCT | ALL ] 式 )
SELECT COUNT (DISTINCT flying_time), MIN (DISTINCT miles) FROM Flights
この式には複数の列への参照や式を書くことができます。しかし、副問合せや他の集約を書くことはできません。 式は組込みのデータ型として評価されなければならず、従ってメソッドを呼ぶなら組込みのデータ型に評価されなければなりません。(例えば、java.lang.Integerやintを返すメソッドであるなら、INTEGERと評価されます。)もし式がNULLと評価されるのであれば、その値は集約にて無視されます。
型により最小値を決める規則は異なります。CHAR、VARCHARでは、MINの評価結果は値の末尾にある空白文字数に影響されます。 例えば'z'と'z 'が列に記録されていたとして、どちらの値が最小値として返されるかを決める方法はありません。なぜならば文字列の比較にて空白文字は無視されるからです。
結果のデータ型は処理する式のデータ型と同じです。(オーバーフローすることはありません。)
-- 有効ではありません。 SELECT DISTINCT flying_time, MIN(DISTINCT miles) from Flights -- 有効です。 SELECT COUNT(DISTINCT flying_time), MIN(DISTINCT miles) from Flights -- 最も若い日付を探します。 SELECT MIN (flight_date) FROM FlightAvailability;