AVG 関数の引数に DISTINCT を指定して平均を求めると重複した数値を1レコードとして処理される。
デフォルトは AVG ( ALL expr ) で動作し、 すべての数値(NULL は含まず)の平均を求める。
一般的にはグループ単位の平均を求める。⇒ GROUP BY 句 を使用していない場合には選択による結果セット(条件によって選択されたレコード) を1つのグループとして全体の平均を1レコード戻す。
注意
AVG 関数やその他の集計関数において NULL 値 は 「未定義」をあらわす。「未定義」のデータは平均値を計算するときに分子にも分母にも加算されない。これは NULL のレコードが何レコードあっても計算結果に一切影響を与えないということ。
NULL のレコードを 1 件として扱うには NULL 値を 0 などの数値として明示的に変換する必要がある
変換例 ⇒ AVG ( NVL ( expr, 0 ) ) ⇒ NVL 関数
該当データが無い場合、NULL しかデータが存在しない場合には AVG 関数は NULL を戻す。