MAXは行の集合から最大の値を求める集約関数です。(
DISTINCTやALLという限定詞により、重複が除去されたりそのまま残されるか決まりますが、これらの限定詞はMAXの式では意味を持ちません。
式は複数の列への参照や式を含むことができますが、他の集約や副問合せを含むことはできません。 また組込みのデータ型に評価されなければなりません。 従って組込みのデータ型と評価されるメソッドを呼ぶことができます。 (例えばjava.lang.Integerやintを返すメソッドはINTEGERと評価されます。) もし式がNULLと評価された場合、集約においてその値は無視されます。
CHAR、VARCHARについては、値の末尾にある空白文字列は、MAXの振る舞いに影響があります。 たとえば、'z'と'z 'の両方が列に格納されていた場合、空白は比較にて無視されるので結果は不定ですが、何れか片方の値が返されます。
結果のデータ型はMAXが動作する式と同じものとなります。(オーバーフローすることはありません。)