MySQLで複数の列から最小値を取得する方法【LEAST関数の使い方】
MySQLでは、LEAST()関数を使うことで、複数の列(カラム)の値の中から最小値を簡単に取得できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、LEAST関数の具体的な使い方を確認していきます。
サンプルテーブルの作成
まず、テーブルを作成します。
mysql> create table DemoTable756 (
Value1 int,
Value2 int,
Value3 int
);
Query OK, 0 rows affected (0.62 sec)レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable756 values(10,20,14); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable756 values(20,34,17); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable756 values(200,134,789); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable756 values(139,98,99); Query OK, 1 row affected (0.17 sec)
テーブルの内容を確認する
SELECT文を使って、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable756;
実行すると、次のような出力が得られます。
+--------+--------+--------+ | Value1 | Value2 | Value3 | +--------+--------+--------+ | 10 | 20 | 14 | | 20 | 34 | 17 | | 200 | 134 | 789 | | 139 | 98 | 99 | +--------+--------+--------+ 4 rows in set (0.00 sec)
LEAST関数で最小値を取得する
複数の列から最小値を取得するには、LEAST()関数を使用します。以下がそのクエリです。
mysql> select least(Value1,Value2,Value3) from DemoTable756;
実行結果は以下のとおりです。
+-----------------------------+ | least(Value1,Value2,Value3) | +-----------------------------+ | 10 | | 17 | | 134 | | 98 | +-----------------------------+ 4 rows in set (0.00 sec)
結果の解説
LEAST()関数は、引数として渡された複数の値を比較し、その中で最も小さい値を返します。上記の例では、各行ごとにValue1・Value2・Value3の3つの列の値が比較されています。
- 1行目:10、20、14 の中で最小は 10
- 2行目:20、34、17 の中で最小は 17
- 3行目:200、134、789 の中で最小は 134
- 4行目:139、98、99 の中で最小は 98
なお、逆に最大値を取得したい場合はGREATEST()関数を使用します。また、引数のいずれかにNULLが含まれている場合、LEAST関数はNULLを返すという仕様がある点にも注意してください。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
MySQLで重複するIDごとに最小値を取得する方法|MIN関数とGROUP BYの実例解説
MySQLでは、重複するIDが存在するテーブルから各IDに対応する列の最小値を取得したいケースがよくあります。例えば、同じ商品IDに対して複数の価格(float型)が登録されている場合などです。そんなときは、GROUP BY句とMIN()関数を組み合わせることで簡単に実現できます。基本構文重複IDごとの最小値を取得するには、以下のような構文を使用します。select min(対象カラム名) from テーブル名 group by グループ化するカラム名;サンプルテーブルの作成実際に動作を確認するため、まずはテーブルを作成しましょう。mysql> create table DemoTabl