レコードのフィールドの値の合計を求める (SUM 関数の利用) - SQL
レコードのフィールドの値の合計値を求める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やデータベースの記事なども担当。