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

【MySQL】MAX()とGREATEST()で1つの列・2つの列から最大スコア値を取得する方法

はじめに

MySQLでは、1つの列から最大値を取得したい場合MAX() 関数を、2つ以上の列の中から最も大きい値を取得したい場合GREATEST() 関数を使用します。
本記事では、実際にテーブルを作成してデータを投入しながら、両方の関数の使い方をサンプルコードと実行結果付きで解説します。

テーブルを作成する

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable790 (
   Score1 int,
   Score2 int
);
Query OK, 0 rows affected (0.45 sec)

レコードを挿入する

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

mysql> insert into DemoTable790 values(98,76);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable790 values(78,89);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable790 values(85,68);
Query OK, 1 row affected (0.14 sec)

登録したデータを確認する

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

mysql> select *from DemoTable790;

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

+--------+--------+
| Score1 | Score2 |
+--------+--------+
| 98     | 76     |
| 78     | 89     |
| 85     | 68     |
+--------+--------+
3 rows in set (0.00 sec)

MAX()関数:1つの列から最大値を取得する

単一の列から最大値を取得するには、MAX() 関数を使用します。

mysql> select max(Score1) from DemoTable790;

実行結果は以下のとおりです。Score1 列の中で最も大きい「98」が返されます。

+-------------+
| max(Score1) |
+-------------+
| 98          |
+-------------+
1 row in set (0.00 sec)

GREATEST()関数:2つの列から最大値を取得する

Score1 と Score2 の2つの列の中から、行ごとに最も大きい値を取得するには、GREATEST() 関数を使用します。

mysql> select greatest(Score1,Score2) from DemoTable790;

実行結果は以下のとおりです。各行ごとに Score1 と Score2 のうち大きい方が返されていることがわかります。

+-------------------------+
| greatest(Score1,Score2) |
+-------------------------+
| 98                      |
| 89                      |
| 85                      |
+-------------------------+
3 rows in set (0.03 sec)

まとめ

  • MAX(): 1つの列全体の中から最大値を1件だけ取得する集計関数
  • GREATEST(): 引数として渡された複数の列(または値)の中から、行ごとに最も大きい値を返す関数

用途に応じてこの2つの関数を使い分けることで、スコアデータなどの数値比較を効率的に行うことができます。

  1. MySQLで特定の列の値から数値を減算する方法

    MySQLのテーブル内にある特定の列の値から数値を減算したい場合は、UPDATE文を使って該当する行の値を更新するだけで実現できます。この記事では、実際にテーブルを作成し、データを挿入して、列の値から数値を減算する手順を順番に解説します。 1. テーブルを作成する まず、減算対象となる整数型(int)の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1372     -> (     -> Value int    &n

  2. MySQLで2つの列のすべての値をカウントし、NULL値を除外する方法

    MySQLでは、COUNT関数を組み合わせることで、複数の列に含まれるすべての値をカウントできます。COUNT関数はNULL値を自動的に除外するため、NULLが混在するデータでも正確な合計件数を取得できるのが特徴です。ここでは、2つの列の値をカウントし、NULL値を除外した合計カウントを求める方法を具体的な例で解説します。 1. サンプルテーブルの作成 まず、学生名と点数を格納するテーブルを作成します。 mysql> create table DemoTable1975     (     StudentNa