MySQLでテーブルの各グループごとに最大値を取得する方法
MySQLでテーブル内の各値(グループ)ごとの最大値を取得したい場合は、GROUP BY句とMAX()関数を組み合わせて使用します。GROUP BY句が指定したカラムの値ごとに行をグループ化し、MAX()関数がそのグループ内での最大値を返してくれます。
ここでは、「国名」と「人口」を格納するサンプルテーブルを使って、具体的な手順を解説していきます。
1. サンプルテーブルを作成する
まず、CREATE TABLE文でテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> CountryName varchar(20),
-> Population int
-> );
Query OK, 0 rows affected (0.56 sec)
2. テーブルにデータを挿入する
次に、INSERTコマンドを使っていくつかのレコードを挿入します。同じ国名(US・UK)のデータを複数登録している点に注目してください。
mysql> insert into DemoTable values('US',560);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('UK',10090);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('UK',8794);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('US',1090);
Query OK, 1 row affected (0.21 sec)3. 登録されたデータを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-------------+------------+
| CountryName | Population |
+-------------+------------+
| US | 560 |
| UK | 10090 |
| UK | 8794 |
| US | 1090 |
+-------------+------------+
4 rows in set (0.00 sec)
4. 各グループごとの最大値を取得する
それでは本題です。以下のクエリを実行すると、国名ごとに人口の最大値を取得できます。
mysql> select CountryName,max(Population) from DemoTable group by CountryName;
実行結果は次のようになります。
+-------------+-----------------+
| CountryName | max(Population) |
+-------------+-----------------+
| US | 1090 |
| UK | 10090 |
+-------------+-----------------+
2 rows in set (0.00 sec)
結果を見ると、「US」では最大値の1090、「UK」では最大値の10090がそれぞれ返されていることがわかります。このように、GROUP BY句でカラムを指定し、MAX()関数と組み合わせるだけで、各グループの最大値を簡単に抽出できます。
なお、同様の手法としてMIN()(最小値)、AVG()(平均値)、SUM()(合計値)、COUNT()(件数)などの集計関数もGROUP BY句と組み合わせて使えるので、用途に応じて活用すると便利です。
-
MySQLで最大の累積値とその出現回数を取得するクエリの書き方
カラム同士を掛け合わせた値(累積値)の中から最大値と、その出現回数を取得したい場合は、集計関数 COUNT(*) をサブクエリと組み合わせて使用します。あわせて GROUP BY 句も活用します。テーブルの作成まず、以下のコマンドでテーブルを作成しましょう。mysql> create table demo23-> (-> id int not null auto_increment primary key,-> value1 int,-> value2 int-> );Query OK, 0 rows affected (1.65 sec)レコードの挿入続い
-
MySQLで列の最大値を取得する方法をわかりやすく解説
MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(