レコードのフィールドの値の合計を求める (SUM 関数の利用)
レコードのフィールドの値の合計値を求めるSQLを紹介します。
概要
SQLでレコードのフィールドの合計値を求める場合はSUM関数を利用します。
メモ
レコードのフィールドの値ではなく、レコードの数を求める場合はCOUNT関数を利用します。詳しくは、
こちらの記事を参照してください。
書式
SUM関数の書式は次の通りです。
select SUM((合計を求める列名)) from (テーブル名)
特定の条件に一致するレコードの合計を求める場合の書式です。
select SUM((合計値を求める列名)) from (テーブル名) where (条件式)
特定の列でグループにまとめて集計する場合の書式です。
select SUM((合計値を求める列名)) from (テーブル名) group by (列名)
例1:テーブルのすべてのレコードの合計値を取得する
products テーブル
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルで"price"の合計を求める場合は以下のSQLを実行します。
select SUM(price) from Products
結果
結果は以下となります。
補足
列名を付ける場合のSQLは以下になります。
select SUM(price) as total from Products
select total=SUM(price) from products
結果は以下となります。
例2:条件に一致したレコードの合計を取得する
products テーブル
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでcategoryが"Bird"の合計を求める場合は以下のSQLを実行します。
select SUM(price) from products where category='Bird'
結果
結果は以下となります。
補足
列名を付ける場合のSQLは以下になります。
select SUM(price) as totalfrom products where category='Bird'
または
select total=SUM(price) from products where category='Bird'
結果は以下となります。
例3:group by を用いる場合
group by を用いると指定した列ごとのグループにまとめて、集計することができます。
products テーブル
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでcategoryごとの合計を求める場合は以下のSQLを実行します。
select category,SUM(price) as sumvalue from products group by category
結果
結果は以下となります。
category | sumvalue |
Bird | 585 |
Mammal | 2480 |
このページのキーワード
- レコードのフィールドの値の合計を取得する (SUM 関数の利用)
- SQL 合計
- SQL 値 合計
- SQL sum
- SQL sum関数
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。