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

MySQLでfloat型の列の値を丸めて新しい列に表示する方法

MySQLでは、ROUND()関数を使うことで、float型の数値を任意の桁数で丸め、その結果をAS句で名前を付けた新しい列として表示できます。この記事では、テーブルの作成から結果の確認まで、具体的な手順をサンプル付きで解説します。

1. サンプルテーブルを作成する

まず、float型の「Value」列を持つテーブルを作成します。

mysql> create table DemoTable
(
    Value float
);
Query OK, 0 rows affected (0.95 sec)

2. レコードを挿入する

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(12.4567);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(124.7884);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(45.64643);
Query OK, 1 row affected (0.46 sec)

3. 挿入したデータを確認する

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

mysql> select *from DemoTable;

実行すると、以下のような出力が得られます。

+---------+
| Value   |
+---------+
| 12.4567 |
| 124.788 |
| 45.6464 |
+---------+
3 rows in set (0.00 sec)

4. ROUND()関数で値を丸めて新しい列に表示する

float型の値を小数第2位で丸め、その結果を新しい列として表示するには、以下のようにROUND()関数とAS句を組み合わせたクエリを実行します。

mysql> select Value,ROUND(Value,2) AS RoundValue from DemoTable;

このクエリを実行すると、元の値と丸められた値が並んで表示されます。

+---------+------------+
| Value   | RoundValue |
+---------+------------+
| 12.4567 | 12.46      |
| 124.788 | 124.79     |
| 45.6464 | 45.65      |
+---------+------------+
3 rows in set (0.00 sec)

ポイント解説

ROUND(Value, 2) の第2引数は、丸める小数点以下の桁数を指定します。例えば ROUND(Value, 0) とすれば整数に丸めることができます。

AS句で別名(ここでは「RoundValue」)を付けることで、元の列のデータを変更することなく、丸めた結果だけを新しい列として取得できるのが大きなメリットです。なお、この方法では表示結果が変わるだけで、テーブル内に保存されている実際のデータは更新されない点に注意してください。

  1. MySQLでテーブル内の各レコードの出現回数をカウントし、結果を新しい列として表示する方法

    MySQLのテーブル内で同じ値が何回出現するかをカウントし、その結果を新しい列として表示したい場合があります。このような集計処理には、COUNT(*)関数とGROUP BY句を組み合わせて使用します。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable1942 ( Value int ); Query OK, 0 rows affected (0.00 sec) INSERTコマンドを使って、いくつかのレコードを挿入します。 mysql> insert into DemoTable

  2. 【MySQL入門】NULL値に応じて新しい列にカスタムテキストを表示する方法

    MySQLでは、IF()関数を活用することで、カラムの値がNULLかどうかを判定し、その結果に応じて新しい列に任意のカスタムテキストを表示できます。本記事では、実際のサンプルコードとともにその手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、学生名を格納するシンプルなテーブルを作成しましょう。mysql> create table DemoTable1953 ( StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. テストデータを挿入する次に、INSERT文を使ってレコ