SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

SUM ( [ ALL | DISTINCT ] 数値列 )


戻り値 : 数値列の合計値

SUMは指定した数値列データの合計値を求めるときに使用します。

ALLキーワードはデフォルトであるため省略可能です。


AccessではDISTINCTキーワードを指定できません。


関連キーワード





SQL実行例の説明(1)

T1_SAMPLE表からSALE合計値を取得します。


SELECT SUM ( SALE ) FROM T1_SAMPLE;


SQL実行の結果(1-1)

P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
SUM(SALE)
34000



SQL実行例の説明(2)

T1_SAMPLE表からSALE合計値を取得します。

DISTINCTキーワードを指定すると数値列に同じ値があるときは最初の一つだけを計算対象とすることができます。


SELECT SUM ( DISTINCT SALE ) FROM T1_SAMPLE;


SQL実行の結果(2-1)

T1_SAMPLE表のSALEには2件の同じ値のデータが格納されています。

DISTINCTキーワードが指定してされているのでP_IDZ00102SALE12000は合計値を取得するとき計算の対象外となります。(左)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
SUM(DISTINCT SALE)
22000



SQL実行例の説明(3)

T1_SAMPLE表からSALE合計値を取得します。

GROUP BYを指定するとグループ単位の平均値を求めることができます。


SELECT RANK, SUM ( SALE ) FROM T1_SAMPLE
GROUP BY RANK;


SQL実行の結果(3-1)

T1_SAMPLE表のRANKA1, C1, B2の3つのグループに区分けされます。(左)

それぞれのグループ単位の合計値を取得します。(右)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
RANKSUM(SALE)
A1 9000
C1 1000
B224000