MySQLで列の最大値を取得する方法|ORDER BY句とMAX()関数の使い方
MySQLである列の最大値を取得したい場合は、ORDER BY句を使う方法と、集計関数MAX()を使う方法の2つがあります。それぞれの使い方をサンプルコードとともに見ていきましょう。
方法1:ORDER BY句を使う
降順(DESC)で並べ替えたうえで、先頭の1件だけを取得する方法です。構文は以下の通りです。
select yourColumnName from yourTableName order by yourColumnName desc limit 0,1;
まず、動作確認用のテーブルを作成します。
mysql> create table DemoTable
(
Number int
);
Query OK, 0 rows affected (0.52 sec)次に、INSERTコマンドでレコードを挿入していきます。
mysql> insert into DemoTable values(790); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(746); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(480); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(880); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(879); Query OK, 1 row affected (0.20 sec)
SELECT文でテーブル内のすべてのレコードを確認してみましょう。
mysql> select * from DemoTable;
実行すると、以下のような結果が表示されます。
+--------+ | Number | +--------+ | 790 | | 746 | | 480 | | 880 | | 879 | +--------+ 5 rows in set (0.00 sec)
それでは、ORDER BY句を使ってNumber列の最大値を取得してみます。
mysql> select Number from DemoTable order by Number desc limit 0,1;
結果は以下の通りです。最大値「880」が1件だけ返されました。
+--------+ | Number | +--------+ | 880 | +--------+ 1 row in set (0.00 sec)
方法2:集計関数MAX()を使う
よりシンプルなのが、集計関数MAX()を使う方法です。列名をMAX()で囲むだけで最大値を求められます。
mysql> select MAX(Number) from DemoTable;
実行結果は以下の通りです。
+-------------+ | MAX(Number) | +-------------+ | 880 | +-------------+ 1 row in set (0.00 sec)
まとめ
列の最大値を取得するだけなら、記述がシンプルなMAX()関数がおすすめです。一方、ORDER BY + LIMITの組み合わせは、「最大値を持つ行全体」や「上位N件」を取得したい場合に便利なので、目的に応じて使い分けるとよいでしょう。
-
MySQLで列の最大値を取得する方法をわかりやすく解説
MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(
-
MySQLで列から最大値を取得する方法
MySQLで列の最大値を取得するには?MySQLのテーブルから特定の列の最大値を取得するには、ORDER BY句とLIMIT句を組み合わせる方法が便利です。ここでは、実際にテーブルを作成し、データを挿入して、最大値を取得する手順を順番に解説します。1. テーブルを作成するまず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.63 sec)2. レコードを挿入する次に、INSERTコ