SUM 集約関数

SUM 関数は、一連の数値の合計値を戻します。

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

スキーマは SYSIBM です。

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

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

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

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

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

引数値のデータ・タイプが 10 進数の場合、結果の位取り は引数値の位取りと同じであり、結果の精度は引数値の精度およ び 10 進数の精度オプションによって決まります。

  • 引数値の精度が 15 よりも大きいか、DEC31 オプションが 有効である場合、結果の精度は min(31,P+10)。ここで、P は引数値の精度です。
  • これ以外の場合、結果の精度は 15 です。

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

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

例: サンプルテーブルDSN8C10.EMP に表示されている従業員のすべての収入源(給与、手数料、ボーナス)からの総収入を、大きな整数型のホスト変数 INCOME に設定します。 DEC31 が使用されていない場合は 、3 つの列すべてが DECIMAL(9,2) であるため、結果の合計は DECIMAL(15,2) となります。
   EXEC SQL SELECT SUM(SALARY+COMM+BONUS)
     INTO :INCOME
     FROM DSN8C10.EMP;