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

MySQLで通貨記号付きの列値を合計する方法

MySQLで通貨記号付きの列値を合計する方法

MySQLでは、「€200.00」のように通貨記号が含まれた文字列データでも、集計関数SUM()とREPLACE()関数を組み合わせることで合計を求めることができます。ここでは、実際にテーブルを作成し、通貨記号付きの価格データを合計する手順を解説します。

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

まず、価格を格納するためのテーブルを作成します。

mysql> create table DemoTable616 (Price varchar(100));
Query OK, 0 rows affected (0.59 sec)

2. レコードの挿入

INSERTコマンドを使用して、通貨記号(€)付きの価格データを登録します。

mysql> insert into DemoTable616 values('€200.00');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable616 values('€300.00');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable616 values('€500.00');
Query OK, 1 row affected (0.12 sec)

3. 登録データの確認

SELECT文でテーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable616;

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

+-----------+
| Price     |
+-----------+
| €200.00   |
| €300.00   |
| €500.00   |
+-----------+
3 rows in set (0.00 sec)

4. 通貨記号を除外して合計するクエリ

ここでのポイントは、SUM()関数の中でREPLACE()関数を使い、通貨記号(€)を空文字に置き換えることです。これにより、varchar型で保存された価格データも数値として正しく合計できるようになります。

mysql> select sum(replace(Price, '€', '')) as Total_Price from DemoTable616;

実行結果:

+-------------+
| Total_Price |
+-------------+
| 1000        |
+-------------+
1 row in set (0.00 sec)

このように、REPLACE()関数で通貨記号を除去してからSUM()関数で合計することで、「€200.00 + €300.00 + €500.00 = 1000」という結果を簡単に取得できます。金額データを文字列として保存している既存システムでも、この手法を活用すれば集計処理に対応できます。

  1. PHPとMySQLでブール値を扱うには?BOOL・BOOLEAN・TINYINT(1)の違いと使い方

    本記事では、MySQL 8.0.12を使用して、ブール(Boolean)値の正しい取り扱い方を解説します。まず、使用しているMySQLのバージョンを確認しておきましょう。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec) MySQLにおけるブール値の基本:BOOL・BOOLEAN・TINYINT(1) MySQLでブール値を扱うには、BOOL、BOOLEAN、またはTINYINT(1)のいずれかを使用

  2. MySQLのCASE WHENで0と1の値を持つ列に条件を設定する方法

    MySQLで条件を設定するには、CASE WHENステートメントを使用します。本記事では、0または1の値を持つ複数の列に対して条件を設定し、その合計値に応じてステータスを判定する方法を、具体的なサンプルコードとともに解説します。1. テーブルを作成するまず、CREATE TABLE文でサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value1 int, -> Value2 int, -> Value3 int, -> Value4 int -> );Qu