【SQL基礎】SUM関数の基本構文
SUM関数は対象カラムの合計値を返す関数です。
SELECT文と併せて使います。
SELECT SUM(対象カラム名)
FROM 対象テーブル名;
SUM関数は数値型のデータに対して使用します。
本記事では例として以下のテーブル(テーブル名:teachers)を使用します。
1.数値に対してSUM関数を使用する。
例1.teachersテーブルのstudentsカラムに対してSUM関数を使用する。
SELECT SUM(students) FROM teachers;
studentsカラムの合計値を取得することができました。
2.対象カラム内にNULLがある場合
対象カラム内にNULLがある場合、NULLは無視されます。
つまり、SUM関数の使用に特に影響はありません。
本来、NULLを含む演算(1+NULL等)の結果はNULLになりますが、SUM関数においてはNULL以外の数値を合計した値を返してくれます。
例2.teachersテーブルのscoreカラムに対してSUM関数を使用する。
SELECT SUM(score) FROM teachers;
scoreカラムはNULLを含んでいますが、問題なく合計値を取得できています。
3.WHERE句で条件を絞り込んだ結果、該当する行が存在しなかった場合
SUM関数とWHERE句は併用することができます。
WHERE句を使って条件を絞り込んだ結果該当する行が存在しなかった場合、SUM関数はNULLを返します。
例3.idが5より大きいという条件を付けて、teachersテーブルのstudentsカラムに対してSUM関数を使用する。
SELECT SUM(students) FROM teachers WHERE id > 5;
teachersテーブルにはidが5より大きいレコードは存在しません。
そのため、SUM関数はNULLを返します。
学習のポイント
・SUM関数は合計値を返す集約関数である。
練習問題
以下からダウンロード可能です。
また、ダウンロードしたら以下のようにしてworldcup2014データベースを作成し、インポートしてください。
※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。
worldcup2014.zip
[sql] CREATE DATABASE worldcup2014;use worldcup2014
source C:\worldcup2014.sql
[/sql]
1.2014年ワールドカップ参加選手の体重を合計すると何㎏になるでしょうか。
playersテーブル(id,country_id,uniform_num,position,name,club,birth,height,weightの9つのカラムで構成されている)を使って答えを導いてください。