SUM 集約関数
SUM 関数は、一連の数値の合計値を戻します。
スキーマは 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;