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

MySQLで2つの列の数値を割り算し、結果を新しい列として表示する方法

MySQLでは、SELECT文の中で列同士を直接演算することで、除算の結果を新しい列として取得できます。この記事では、実際にサンプルテーブルを作成し、2つの整数型の列(FirstNumberとSecondNumber)の値を割り算して、その計算結果を「Result」という新しい列に表示する手順を解説します。

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

まず、2つのint型の列を持つテーブルを作成します。

mysql> create table DemoTable719 (
    FirstNumber int,
    SecondNumber int
);
Query OK, 0 rows affected (0.57 sec)

2. レコードを挿入する

INSERTコマンドを使って、サンプルデータをいくつか登録します。

mysql> insert into DemoTable719 values(20,10);
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable719 values(500,50);
Query OK, 1 row affected (0.22 sec)

mysql> insert into DemoTable719 values(400,20);
Query OK, 1 row affected (0.11 sec)

3. 登録したレコードを確認する

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

mysql> select * from DemoTable719;

実行すると、次のような結果が出力されます。

+-------------+--------------+
| FirstNumber | SecondNumber |
+-------------+--------------+
|          20 |           10 |
|         500 |           50 |
|         400 |           20 |
+-------------+--------------+
3 rows in set (0.00 sec)

4. 2つの列を除算して新しい列に結果を表示する

ここがポイントです。SELECT文の中で FirstNumber/SecondNumber のように記述し、AS句で別名「Result」を付けることで、除算結果を新しい列として表示できます。

mysql> select *, FirstNumber/SecondNumber AS Result from DemoTable719;

実行すると、次のような結果が得られます。

+-------------+--------------+---------+
| FirstNumber | SecondNumber | Result  |
+-------------+--------------+---------+
|          20 |           10 | 2.0000  |
|         500 |           50 | 10.0000 |
|         400 |           20 | 20.0000 |
+-------------+--------------+---------+
3 rows in set (0.00 sec)

補足:小数点以下の桁数について

MySQLでは、/演算子による除算は浮動小数点演算として扱われるため、上記の出力例のように結果はデフォルトで小数点以下4桁まで表示されます。たとえば 20 ÷ 10 は「2.0000」と表示されます。

もし表示桁数を調整したい場合は、ROUND関数やTRUNCATE関数、FORMAT関数などを組み合わせると便利です。

-- 小数点以下2桁に丸める場合
mysql> select *, ROUND(FirstNumber/SecondNumber, 2) AS Result from DemoTable719;

まとめ

  • SELECT文の中で「列名 / 列名」と記述すれば、2つの列の値を除算できる。
  • AS 別名 を使うことで、計算結果に任意の名前(ここではResult)を付けられる。
  • 除算結果は小数点以下4桁で返されるため、必要に応じてROUND関数などで桁数を調整する。

この方法は売上÷数量による単価計算や、合計値からの平均算出など、さまざまな場面で応用できる基本的なテクニックです。

  1. MySQLで英字と数字が混在する列の値を正しくソートする方法

    MySQLでは、英字と数字が混在するデータ(例:「J23」「C13」など)が格納された列を単純にORDER BY句でソートすると、すべて文字列として扱われるため、意図した通りの順序にならないことがあります。本記事では、LEFT関数・SUBSTR関数・CAST関数を組み合わせて、文字部分と数値部分をそれぞれ正しく並べ替える方法を、実際のSQL例とともに解説します。 サンプルテーブルの作成 まず、ソート対象となるテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Code varchar(20) ->

  2. MySQLでNULLを含む列からNULL以外(NOT NULL)の値だけを抽出して表示する方法

    MySQLのIS NOT NULLを使ってNULL以外の値のみを表示するMySQLで、NULLとNULL以外のレコードが混在する列からNULL以外の値だけを取得したい場合は、IS NOT NULL演算子を使用します。この記事では、実際にテーブルを作成しながら手順を解説します。1. テーブルの作成まず、日付型の列を持つサンプルテーブルを作成します。mysql> create table DemoTable1      (      DueDate date      ); Query OK, 0 ro