MySQL MAX() 関数
1. MySQL MAX() 関数とは
MAX() 関数は、選択したカラムの中で最も大きい値を返します。
この関数は、数値型だけでなく、文字列型や日付型のデータ型に対しても使用することが可能です。
1.1 MAX() の構文
SELECT MAX(column_name)
FROM table_name
WHERE condition;2. デモ用データベース
以下は、Northwind サンプルデータベースの「Products(製品)」テーブルから抽出したデータの一部です。
| ProductID | ProductName | SupplierID | CategoryID | Unit | UnitPrice |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
3. MAX() の使用例
以下のSQLは、「Products」テーブルの「Price(価格)」カラムにおける最も高い価格を返します。
3.1 実行例
独自のSQLサーバーで試してみましょう:
/* Productsテーブルから最も高い価格を取得し、
結果のカラム名をLargestPriceとする */
SELECT MAX(Price) AS LargestPrice
FROM Products; テックメモ: MAX() 関数を使用する際、返される結果のカラムにはデフォルトの名前が付きません。実務では、上記の例のように AS キーワードを使用して、LargestPrice のような分かりやすいエイリアス(別名)を付けるのが一般的です。
4. 日付カラムでの MAX() の使用
日付型に対して MAX() を使用すると、「最も新しい(最新の)」日付を取得できます。
以下のSQLは、「Employees(従業員)」テーブルの「BirthDate(生年月日)」カラムから、最も遅い(つまり最も若い人の)生年月日を返します。
4.1 日付データの抽出例
/* 最も新しい(最新の)生年月日を
LatestBirthdateという名前で取得 */
SELECT MAX(BirthDate) AS LatestBirthdate
FROM Employees;