SQLの全てがっここにある!

【SQL】SUM関数とは? 数値を合計する方法を分かりやすく解説

Rii

Rii

ボールド歴8年

この記事では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

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?