AVG
AVG 関数は、数値の集合の平均値を戻します。
- numeric-expression
- 任意の組み込み数値、文字ストリング、またはグラフィック・ストリングのデータ・タイプの値を戻す式。 引数が文字ストリングまたはグラフィック・ストリングの場合、関数を評価する前に DECFLOAT(34) にキャストされます。 引数値の合計は、結果のデータ・タイプの範囲内でなければなりません。
結果のデータ・タイプは、原則として引数の値のデータ・タイプと同じになります。 ただし、以下の場合は、結果のデータ・タイプが引数の値のデータ・タイプとは異なるものになります。
- 引数値が DECFLOAT(16) の場合、結果は DECFLOAT(34) になります。
- 引数値が単精度浮動小数点の場合、 結果は倍精度浮動小数点になります。
- 引数値が短整数である場合は、結果は長整数になる。
- 結果は、引数が、10 進数または位取りがゼロ以外の 2 進数で、精度が p、位取りが s である場合は、10 進数になります。 結果の精度は、p-s+ min(ms, mp-p+s) です。 結果の位取りは、min(ms, mp-p+s) です。
p、s、ms、および mp の値については、SQL での 10 進数演算を参照してください。
この関数は、引数の値から NULL 値を除いた値の集合に対して適用されます。 DISTINCT を使用すると、重複する値は除かれます。
結果が、NULL になることもあります。値の集合が空である場合は、結果は NULL 値です。 それ以外の場合は、結果は集合の値の平均値です。
値を集計する順序は定義されていませんが、 すべての中間結果は結果のデータ・タイプの範囲内になければなりません。
結果のデータ・タイプが整数である場合、平均値の小数部分は失われます。
注
特殊値 DECFLOAT を含む結果: 引数のデータ・タイプが 10 進浮動小数点であり、特殊値 sNaN または -sNaN、もしくは +Infinity と -Infinity の両方が集約に含まれる場合、エラーまたは警告が戻されます。それ以外の場合、+NaN または -NaN が検出されれば、結果は +NaN または -NaN になります。+Infinity または -Infinity が検出されれば、結果は +Infinity または -Infinity になります。
例
- PROJECT 表を使用して、ホスト変数 AVERAGE (DECIMAL(5,2)) に、部門 (DEPTNO) D11 のプロジェクトの平均要員水準 (PRSTAFF) を設定します。
上記の結果、AVERAGE は 4.25 (つまり 17/4) にセットされます。SELECT AVG(PRSTAFF) INTO :AVERAGE FROM PROJECT WHERE DEPTNO = 'D11'
- 表 PROJECT を使用して、ホスト変数 ANY_CALC に、部門 (DEPTNO)「D11」のそれぞれ固有の要員水準の値 (PRSTAFF) の平均値をセットします。
上記の結果、ANY_CALC は 4.66 (つまり、14/3) に設定されます。SELECT AVG(DISTINCT PRSTAFF) INTO :ANY_CALC FROM PROJECT WHERE DEPTNO = 'D11'