AVG 集約関数

AVG 関数は、一連の数値の平均値を戻します。

構文図を読むビジュアルシンタックスダイアグラムをスキップするAVG(ALLDISTINCT数値式)

スキーマは SYSIBM です。

引数値は、いずれかの組み込み数値データ・タイプの値です。また、合計は、結果のデータ・タイプの範囲内でなければなりません。

引数を、文字ストリングまたはグラフィック・ストリングのデータ・タイプにすることもできます。 ストリング入力は、暗黙的に DECFLOAT(34) の数値にキャストされます。

結果のデータ・タイプは以下のように決定されます。

  • この引数が DECFLOAT(n) の場合は DECFLOAT(34)。
  • この引数が短精度整数の場合は長精度整数。
  • この引数が単精度浮動小数点の場合は倍精度浮動小数点。
  • それ以外の場合、結果はこの引数のデータ・タイプと同じになります。

結果は NULL 値の場合もあります。

引数値のデータ・タイプが、精度が p で位取り が s の 10 進数の場合、結果の精度 (P) および 位取り (S) は、p および 10 進数の 精度オプションによって決まります。

  • p が 15 よりも大きいか、DEC31 オプションが有効な場合、P は 31 で、S は max(0,28-p+s) です。
  • これ以外の場合、P は 15 で、S は 15-p+s です。

この関数は、引数の値から NULL 値を除いて求めた値の集合に対して適用されます。 DISTINCT を指定すると、重複する値も除去されます。

空のセットに関数を適用すると、結果は NULL 値となります。 これ以外の場合、結果はそのセットの平均値となります。 演算の合計部分が 実行される順序は定義されていませんが、中間結果は すべて結果データ・タイプの範囲内になければなりません。

結果のタイプが整数の場合、平均値の小数部分は失われます。

例: DEC15 と仮定すると、サンプルテーブル DSN8D10.EMP の従業員が所属する部門 D11 の平均給与を、DECIMAL(15,2)変数AVERAGEに設定します。
   EXEC SQL SELECT AVG(SALARY)
     INTO :AVERAGE
     FROM DSN8D10.EMP
     WHERE WORKDEPT = 'D11';