SUM 集約関数
SUM 関数は、一連の数値の合計値を戻します。
注: 関数の結果は、 large_aggregation 構成パラメーターの有効化の影響を受ける可能性があります。
スキーマは SYSIBM です。
- expression
- 組み込み数値データ・タイプの値を戻す式。
結果のデータ・タイプは、入力式のデータ・タイプと同じです。ただし、以下の場合を除きます。
- 入力式のデータ・タイプが SMALLINT の場合、結果のデータ・タイプは INTEGER です。
- 入力式のデータ・タイプが単精度浮動小数点 (REAL) の場合は、結果のデータ・タイプは倍精度浮動小数点 (DOUBLE) です。
- 入力式のデータ・タイプが DECFLOAT(n) の場合、結果のデータ・タイプは DECFLOAT(34) です。
- 入力式が DECIMAL 値 (精度 p、位取り s) の場合、結果は DECIMAL で、位取りは s になり、精度は以下のようになります。
表 1. DECIMAL 入力による SUM 集約関数の結果の精度 DECIMAL 算術モード1 p 結果の精度 デフォルト 該当なし 31 DEC15 <=15 15 DEC15 15 MIN(31,p+10)DEC31 該当なし MIN(31,p+10)注:- これらのモードは、dec_arithmetic 構成パラメーターによって決定されます。
この関数は、引数の値から NULL 値を除いて求めた値の集合に対して適用されます。 DISTINCT を指定すると、重複する値も除去されます。 数値的に等しい 10 進浮動小数点値に関して DISTINCT 節を解釈するとき、値の中の有効数字桁数は考慮されません。 例えば、10 進浮動小数点数 123.00 が、10 進浮動小数点数 123 と区別されることはありません。 照会から戻される数の表記は、検出された表記のいずれかになります (例えば 123.00 か 123 のいずれか)。
結果は NULL 値の場合もあります。 この関数が空のセットに適用されると、結果は NULL 値になります。 それ以外の場合、結果はそのセットの値の合計になります。
値を集計する順序は定義されていませんが、 すべての中間結果は結果のデータ・タイプの範囲内になければなりません。
例
EMPLOYEE 表を使用して、
事務職員 (JOB='CLERK') に支払われるボーナス (BONUS) の総額をホスト変数 JOB_BONUS (decimal(9,2)) に設定します。
SELECT SUM(BONUS)
INTO :JOB_BONUS
FROM EMPLOYEE
WHERE JOB = 'CLERK'サンプル表を使用すると、結果として JOB_BONUS は 2800 に設定されます。