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関数などで桁数を調整する。
この方法は売上÷数量による単価計算や、合計値からの平均算出など、さまざまな場面で応用できる基本的なテクニックです。
-
MySQLで英字と数字が混在する列の値を正しくソートする方法
MySQLでは、英字と数字が混在するデータ(例:「J23」「C13」など)が格納された列を単純にORDER BY句でソートすると、すべて文字列として扱われるため、意図した通りの順序にならないことがあります。本記事では、LEFT関数・SUBSTR関数・CAST関数を組み合わせて、文字部分と数値部分をそれぞれ正しく並べ替える方法を、実際のSQL例とともに解説します。 サンプルテーブルの作成 まず、ソート対象となるテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Code varchar(20) ->
-
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