
【SQL】SUM関数とは? 数値を合計する方法を分かりやすく解説
この記事ではSQLでのSUM関数の使い方について超初心者向けに分かりやすく解説します。
目次
1. SUM関数とは
「SUM」についてはEXCELでもよく使う関数のためSQLが初めてでも馴染み深い方も多いのではないでしょうか。
本記事ではSQLでの「SUM」について解説していきます。
1-1. SUM関数とは
SUM 関数は指定した数値カラム(列)の合計を求めることができます。
売上の合計や、数量の合計などの計算に利用します。
1-2.SUM関数の構文
構文は以下の通りです。
SUMの構文
SELECT SUM(列名) FROM テーブル名;
2. SUM関数のサンプルコード
実際のコードを見ていきます。
2-1.数値の合計
次のsalesテーブルを使って、列 price のデータを合計します。
テーブル名:sales
+—————+—————————–+——–+———————+——–+
| customer_name | product | price | order_date | cancel |
+—————+—————————–+——–+———————+——–+
| 株式会社A | 携帯電話 | 100000 | 2024-06-01 10:00:00 | 0 |
| B株式会社 | プリンター | 20000 | 2024-06-02 11:30:00 | 0 |
| C株式会社 | モニター | 30000 | 2024-06-03 14:00:00 | 0 |
| 株式会社A | モバイルバッテリー | NULL | 2024-06-03 16:00:00 | 1 |
| 株式会社A | プロジェクター | 350000 | 2024-06-03 16:00:00 | 0 |
| B株式会社 | ノートパソコン | 250000 | 2024-06-04 12:00:00 | 0 |
+—————+—————————–+——–+———————+-
SELECT SUM(price) FROM sales;
【SELECT結果】
mysql> SELECT SUM(price) FROM sales;
+————+
| SUM(price) |
+————+
| 750000 |
+————+
1 row in set (0.00 sec)
2-2.NULL値の扱い
SUM関数はデータにNULLが含まれている場合、NULLを無視して合計を求めます。
上記のサンプルコードでも price にはNULLのデータが含まれていますが、問題なく計算ができています。
3.WHERE句やGROUP BYとの組み合わせ
では次にWHERE句やGROUP BY 句を使って条件を絞ってみます。
3-1.WHERE句で合計の対象を絞る
WHERE句を加え、株式会社A だけの合計を計算します。
株式会社Aだけの合計を計算する。
SELECT SUM(price) FROM sales WHERE customer_name = '株式会社A';
【SELECT結果】
mysql> SELECT SUM(price) FROM sales WHERE customer_name = ‘株式会社A’;
+————+
| SUM(price) |
+————+
| 450000 |
+————+
1 row in set (0.00 sec)
株式会社Aだけの合計を求めることができました。
3-2.GROUP BY句と組み合わせる
では次にGROUP BY句を使って顧客(customer_name)ごとの合計を求めてみます。
顧客(customer_name)ごとの合計を求める。
SELECT customer_name, SUM(price) FROM sales GROUP BY customer_name;
【SELECT結果】
mysql> SELECT customer_name, SUM(price) FROM sales GROUP BY customer_name;
+—————+————+
| customer_name | SUM(price) |
+—————+————+
| 株式会社A | 450000 |
| B株式会社 | 270000 |
| C株式会社 | 30000 |
+—————+————+
3 rows in set (0.00 sec)
顧客ごとの合計を求めることができました。
4.まとめ
・SUM関数は数値の合計を求めることができる
・NULLは無視して計算される
・WHERE句やGROUP BY句と組み合わせることで様々な集計が可能
以上です。
最後までお読みいただきありがとうございました。
【動作検証DB】
mySQL 8.0.39




コメント