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

MySQLのSUM関数でDECIMAL型(10進数)の値を合計する方法

はじめに

MySQLでは、SUM関数を使うことで、テーブル内の数値データを簡単に合計できます。金額などの小数を扱う場合は、DECIMAL型のカラムに対してSUM関数を使用することで、誤差なく正確な合計値を取得できます。

この記事では、実際にサンプルテーブルを作成し、DECIMAL型の値を合計する手順を解説します。

1. サンプルテーブルの作成

まず、DECIMAL型のカラムを持つテーブルを作成します。ここでは「Money」というカラムをDECIMAL(7,2)で定義しています。これは「整数部5桁・小数部2桁」まで格納できることを意味します。

mysql> create table DemoTable
(
   Money DECIMAL(7,2)
);
Query OK, 0 rows affected (0.58 sec)

2. レコードの挿入

次に、INSERT文を使って複数のレコードを挿入します。小数を含む値と整数のみの値を混ぜて登録してみましょう。

mysql> insert into DemoTable values(100.67);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(199.33);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(500);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(400);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(800);
Query OK, 1 row affected (0.14 sec)

3. テーブルの内容を確認

SELECT文ですべてのレコードを表示して確認します。

mysql> select *from DemoTable;

実行結果は以下の通りです。整数で登録した値も、DECIMAL(7,2)の定義に従って小数第2位まで表示されているのがわかります。

+--------+
| Money  |
+--------+
| 100.67 |
| 199.33 |
| 500.00 |
| 400.00 |
| 800.00 |
+--------+
5 rows in set (0.00 sec)

4. SUM関数で合計値を取得する

それが本題のSUM関数を使った合計の求め方です。以下のようにSELECT文でsum(Money)を指定します。

mysql> select sum(Money) from DemoTable;

実行結果:

+------------+
| sum(Money) |
+------------+
| 2000.00   |
+------------+
1 row in set (0.00 sec)

すべてのMoneyカラムの値が合計され、「2000.00」という結果が返されました。

まとめ

MySQLのSUM関数は、DECIMAL型のような小数を含む数値カラムにもそのまま使用でき、精度を保ったまま合計を計算できます。金額データなど誤差が許されないデータを集計する際には、FLOAT型ではなくDECIMAL型を採用し、SUM関数で集計するのがベストプラクティスです。また、必要に応じてROUND関数やFORMAT関数と組み合わせることで、表示形式を整えることも可能です。

  1. MySQLでテーブルの値に基づいて整数を合計する効果的な方法とは?

    MySQLでテーブルの値ごとに整数を合計する方法テーブルの値に基づいて整数を合計するには、GROUP BY句を使用します。GROUP BY句を使うことで、特定のカラムの値ごとにレコードをグループ化し、SUM関数で各グループの合計値を求めることができます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1443    -> (    -> StudentId int,    -> StudentSco

  2. MySQLで同じ日付ごとに列の値を合計する方法|SUM()とGROUP BYの使い方

    MySQLで「同じ日付のレコードに含まれる数値を合計したい」というケースはよくあります。例えば、購入日ごとの商品数量を集計したい場合などが該当します。このような処理を行うには、集計関数 SUM() を GROUP BY 句と組み合わせて使用します。ここでは、実際にテーブルを作成し、日付ごとに値を合計する手順を順番に見ていきましょう。1. サンプルテーブルの作成まず、購入日と商品数を格納するテーブルを作成します。mysql> create table DemoTable1522 -> ( -> ProductPurchaseDate date, ->