AVG

AVG 関数は、数値の集合の平均値を戻します。

構文図を読む構文図をスキップする
           .-ALL------.                          
>>-AVG--(--+----------+--numeric-expression--)-----------------><
           '-DISTINCT-'                          

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) です。

psms、および 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) を設定します。
         SELECT AVG(PRSTAFF)
           INTO :AVERAGE
           FROM PROJECT
           WHERE DEPTNO = 'D11'
    上記の結果、AVERAGE は 4.25 (つまり 17/4) にセットされます。
  • 表 PROJECT を使用して、ホスト変数 ANY_CALC に、部門 (DEPTNO)「D11」のそれぞれ固有の要員水準の値 (PRSTAFF) の平均値をセットします。
         SELECT AVG(DISTINCT PRSTAFF)
           INTO :ANY_CALC
           FROM PROJECT
           WHERE DEPTNO = 'D11'
    上記の結果、ANY_CALC は 4.66 (つまり、14/3) に設定されます。