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_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
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_IDがZ00102のSALE12000は合計値を取得するとき計算の対象外となります。(左)
P_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
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表のRANKはA1, C1, B2の3つのグループに区分けされます。(左)
それぞれのグループ単位の合計値を取得します。(右)
P_ID | RANK | SALE | RATE |
---|---|---|---|
A00101 | A1 | 5000 | 0.50 |
A00102 | A1 | 4000 | 0.40 |
A00103 | C1 | 1000 | 0.10 |
Z00101 | B2 | 12000 | 1.20 |
Z00102 | B2 | 12000 | 1.20 |
RANK | SUM(SALE) |
---|---|
A1 | 9000 |
C1 | 1000 |
B2 | 24000 |