SUM

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

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

numeric-expression
変更の始まり任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 引数が文字ストリングまたはグラフィック・ストリングの場合、関数を評価する前に DECFLOAT(34) にキャストされます。変更の終わり

結果のデータ・タイプは、以下の場合を除いて、引数値のデータ・タイプと同じです。

  • 引数値が DECFLOAT(16) の場合、DECFLOAT(34) になります。
  • 引数値が単精度の浮動小数点数の場合は、倍精度の浮動小数点数になります。
  • 引数値が短整数である場合、結果は長整数になります。
  • 引数が、10 進数または位取りがゼロ以外の 2 進数で、 精度が p、位取りが s である場合は、 精度が mp で位取りが s の 10 進数になります。

ps、 および mp の値については、SQL での 10 進数演算を参照してください。

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

値が加算される順序は未定義ですが、中間結果はすべて結果のデータ・タイプの範囲内になければなりません。

DECFLOAT 特殊値が存在する場合の結果: 引数のデータ・タイプが 10 進浮動小数点数の場合に、特殊値 sNaN または -sNaN、あるいは +Infinity と -Infinity の両方が集約の中に含まれていると、エラーが通知されます。それ以外の場合、+NaN または -NaN が検出されれば、結果は +NaN または -NaN になります。+Infinity または -Infinity が検出されれば、結果は +Infinity または -Infinity になります。

  • EMPLOYEE 表を使用して、 事務職員 (JOB='CLERK') に支払われるボーナス (BONUS) の総額をホスト変数 JOB_BONUS (DECIMAL(9,2)) に設定します。
       SELECT SUM(BONUS)
         INTO :JOB_BONUS
         FROM EMPLOYEE
         WHERE JOB = 'CLERK'
    上記の結果、JOB_BONUS は 4000 にセットされます。