MySQLで列の値を合計する方法|SUM関数の使い方を解説
MySQLである列の値の合計を求めたい場合は、集計関数 SUM() を使用します。SUM関数は、指定したカラム(列)に格納されている数値をすべて加算し、その合計値を1つの結果として返してくれる便利な関数です。
ここでは、実際にサンプルテーブルを作成し、SUM関数で列の合計値を取得する手順を順番に見ていきましょう。
1. サンプルテーブルの作成
まずは、CREATE TABLE文でテスト用のテーブルを作成します。
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> € int
-> );
Query OK, 0 rows affected (0.71 sec)この例では、自動採番される主キー「Id」と、金額を格納する整数型のカラム「€」を持つテーブルを作成しています。
2. テーブルへのデータ挿入
次に、INSERTコマンドを使ってレコードを挿入します。
mysql> insert into DemoTable(€) values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable(€) values(200); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable(€) values(190); Query OK, 1 row affected (0.14 sec)
3. 登録されたデータの確認
SELECT文を実行して、テーブル内のすべてのレコードを確認しておきます。
mysql> select *from DemoTable;
出力結果
+----+------+ | Id | € | +----+------+ | 1 | 10 | | 2 | 200 | | 3 | 190 | +----+------+ 3 rows in set (0.00 sec)
3件のレコードが正しく登録されていることがわかります。
4. SUM関数で合計値を取得する
それでは、MySQLで列の合計を求めるクエリを見ていきましょう。SUM関数にカラム名を指定するだけで、合計値を簡単に取得できます。
mysql> select sum(€) AS Total from DemoTable;
出力結果
+-------+ | Total | +-------+ | 400 | +-------+ 1 row in set (0.00 sec)
実行結果の解説
このクエリでは、SUM(€) によって「€」カラムの全値(10 + 200 + 190)が加算され、合計値の 400 が返されました。
また、「AS Total」のようにエイリアス(別名)を指定することで、出力結果のカラム名を見やすい任意の名前に変更できます。AS句は省略可能ですが、結果の可読性を高めるために付けておくことをおすすめします。
まとめ
- 列の値の合計を求めるには、集計関数 SUM() を使う。
- 書式:SELECT SUM(カラム名) FROM テーブル名;
- AS を使えば、結果のカラム名に別名を付けられる。
SUM関数はWHERE句と組み合わせて特定条件のデータだけを合計したり、GROUP BY句と併せてグループごとの合計を算出したりすることもできます。売上集計や在庫管理など、さまざまな場面で活躍する基本的な関数なので、ぜひ使いこなせるようにしておきましょう。
-
MySQLで特定の列の値の文字数を取得し、合計を表示する方法
MySQLでは、CHAR_LENGTH()関数とSUM()関数を組み合わせることで、特定の列に格納された値の文字数を取得し、その合計を簡単に求めることができます。この記事では、実際のサンプルを使いながら、テーブルの作成から集計クエリの実行までの手順をわかりやすく解説します。テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1612 -> ( -> FirstName varchar(20), &
-
MySQLで列の値をシャッフルする方法【ORDER BY RAND()の使い方】
MySQLでテーブル内のレコード(列の値)をランダムに並べ替えたい場合は、ORDER BY RAND()を使用します。この記事では、実際にテーブルを作成し、データを挿入して、シャッフルの動作を手順ごとに確認していきましょう。 1. テーブルの作成 まず、以下のコマンドでサンプル用のテーブルを作成します。 mysql> create table DemoTable1557 -> ( -> SubjectId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> SubjectName varchar(20) -&