レコードのフィールドの値の合計を求める (SUM 関数の利用) - SQL

レコードのフィールドの値の合計値を求めるSQLを紹介します。

概要

SQLでレコードのフィールドの合計値を求める場合はSUM関数を利用します。
メモ
レコードのフィールドの値ではなく、レコードの数を求める場合はCOUNT関数を利用します。詳しくは、こちらの記事を参照してください。

書式

SUM関数の書式は次の通りです。
select SUM((合計を求める列名)) from (テーブル名)

特定の条件に一致するレコードの合計を求める場合の書式です。
select SUM((合計値を求める列名)) from (テーブル名) where (条件式)
特定の列でグループにまとめて集計する場合の書式です。
select SUM((合計値を求める列名)) from (テーブル名) group by (列名)

例1:テーブルのすべてのレコードの合計値を取得する

products テーブル
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

上記のテーブルで"price"の合計を求める場合は以下のSQLを実行します。
select SUM(price) from Products

結果

結果は以下となります。
(列名なし)
3065

補足

列名を付ける場合のSQLは以下になります。
select SUM(price) as total from Products
select total=SUM(price) from products 

結果は以下となります。
total
3065

例2:条件に一致したレコードの合計を取得する

products テーブル
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

上記のテーブルでcategoryが"Bird"の合計を求める場合は以下のSQLを実行します。
select SUM(price) from products where category='Bird'

結果

結果は以下となります。
(列名なし)
585

補足

列名を付ける場合のSQLは以下になります。
select SUM(price) as totalfrom products where category='Bird'
または
select total=SUM(price) from products where category='Bird'

結果は以下となります。
total
585

例3:group by を用いる場合

group by を用いると指定した列ごとのグループにまとめて、集計することができます。
products テーブル
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

上記のテーブルでcategoryごとの合計を求める場合は以下のSQLを実行します。
select category,SUM(price) as sumvalue from products group by category

結果

結果は以下となります。
categorysumvalue
Bird585
Mammal2480

このページのキーワード
  • レコードのフィールドの値の合計を取得する (SUM 関数の利用)
  • SQL 合計
  • SQL 値 合計
  • SQL sum
  • SQL sum関数
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2014-07-28
iPentec all rights reserverd.