MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで列の値を合計する方法|SUM()関数の基本的な使い方を解説

MySQLで特定の列に含まれる値の合計を求めたい場合は、集計関数である SUM() を使用します。この記事では、SUM() 関数を使って複数の列の合計値を取得する方法を、実際のサンプルコードとともにわかりやすく解説します。

SUM()関数の基本構文

1つまたは複数の列の合計を求める場合、以下のような構文を使用します。

SELECT
SUM(列名1) AS 別名1,
SUM(列名2) AS 別名2,
SUM(列名3) AS 別名3,
...
FROM テーブル名;

AS を使って別名(エイリアス)を指定すると、結果セットの見出しが読みやすくなり、後続の処理でも扱いやすくなります。

サンプルテーブルの作成

それでは、実際に動作を確認するためにテーブルを作成しましょう。ここでは、3つの整数型の列を持つ「SumDemoOnColumns」というテーブルを作成します。

mysql> CREATE TABLE SumDemoOnColumns
-> (
-> First int,
-> Second int,
-> Third int
-> );
Query OK, 0 rows affected (0.56 sec)

テストデータの挿入

次に、INSERT文を使ってサンプルデータを挿入します。

mysql> INSERT INTO SumDemoOnColumns VALUES(10,20,30);
Query OK, 1 row affected (0.18 sec)

mysql> INSERT INTO SumDemoOnColumns VALUES(40,50,60);
Query OK, 1 row affected (0.32 sec)

mysql> INSERT INTO SumDemoOnColumns VALUES(70,80,90);
Query OK, 1 row affected (0.10 sec)

mysql> INSERT INTO SumDemoOnColumns VALUES(100,110,120);
Query OK, 1 row affected (0.16 sec)

登録データの確認

SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。

mysql> SELECT * FROM SumDemoOnColumns;

実行結果は以下のとおりです。

+-------+--------+-------+
| First | Second | Third |
+-------+--------+-------+
| 10 | 20 | 30 |
| 40 | 50 | 60 |
| 70 | 80 | 90 |
| 100 | 110 | 120 |
+-------+--------+-------+
4 rows in set (0.00 sec)

SUM()関数で各列の合計を取得する

いよいよ、SUM() 関数を使って各列の合計値を求めます。以下のクエリを実行してください。

mysql> SELECT SUM(First) AS First, SUM(Second) AS Second, SUM(Third) AS Third FROM SumDemoOnColumns;

実行結果は次のようになります。

+-------+--------+-------+
| First | Second | Third |
+-------+--------+-------+
| 220 | 260 | 300 |
+-------+--------+-------+
1 row in set (0.00 sec)

結果の検証

それぞれの計算結果が正しいか確認してみましょう。

  • First列:10 + 40 + 70 + 100 = 220
  • Second列:20 + 50 + 80 + 110 = 260
  • Third列:30 + 60 + 90 + 120 = 300

このように、SUM() 関数を使えば、指定した列内のすべての値を簡単に合計できます。複数の列に対しても同時に適用できるため、売上集計や統計処理など、さまざまな場面で活用できます。

補足:NULL値の扱いについて

SUM() 関数はNULL値を自動的に無視して計算を行います。そのため、列にNULLが含まれていてもエラーにはなりませんが、すべての行がNULLだった場合、結果は 0 ではなく NULL が返される点に注意が必要です。必要に応じて COALESCE(SUM(列名), 0) のように組み合わせると、NULLを0として扱うことができます。

  1. MySQLで列(カラム)を分割する方法!SUBSTRING_INDEX関数の使い方を徹底解説

    MySQLで列を分割するには?SUBSTRING_INDEX関数の基本MySQLで1つの列に格納された文字列を区切り文字で分割したい場合、SUBSTRING_INDEX()関数を使用します。この記事では、アンダースコア(_)で区切られた氏名データを分割する具体例を通じて、その使い方をわかりやすく解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(40) -> );Query OK, 0 rows affected (1.

  2. MySQLでシーケンスを作成する方法|AUTO_INCREMENTの使い方とルールを解説

    MySQLにおけるシーケンスとは?MySQLにおける「シーケンス」とは、1(指定した場合は0)から始まり、昇順で自動生成される整数の連番のことです。多くのアプリケーションでは、レコードを一意に識別するための番号を発行する目的でシーケンスが利用されています。具体例代表的な例としては、CRMシステムの顧客ID、人事管理システムの社員番号、設備管理システムの機器番号などが挙げられます。MySQLでシーケンスを自動的に作成するには、対象のカラムにAUTO_INCREMENT属性を設定します。通常は、主キー(PRIMARY KEY)カラムに対して適用するのが一般的です。AUTO_INCREMENTを使用