SQL MAX() 関数
1. SQL MAX() 関数
MAX() 関数は、選択されたカラム内の最大値をリターンします。
MAX() 関数は、数値、ストリング(文字列)、および日付のデータタイプで使用可能です。
2. MAX() の使用例
以下のクエリは、"Products" テーブルの Price カラムから最も高い価格をリターンします。
2.1 例(自分専用の SQL Server を取得)
-- Price カラム内の最高価格をリターンする --
SELECT MAX(Price)
FROM Products;3. MAX() のシンタックス
SELECT MAX(column_name)
FROM table_name
WHERE condition;4. デモ用データベース
以下は、例題で使用する Products テーブルの抜粋です。
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 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 |
5. カラム名(エイリアス)の設定
MAX() を使用すると、リターンされるカラムには名前が付きません。AS キーワードを使用して、カラムに説明的な名前(エイリアス)を付与します。
5.1 例
-- 最高価格に 'HighestPrice' というエイリアスを付けて取得 --
SELECT MAX(Price) AS HighestPrice
FROM Products;6. 日付カラムでの MAX() の使用
次の SQL は、Employees テーブルの BirthDate カラムから、最も新しい(遅い)誕生日をリターンします。
6.1 例
-- 最も新しい誕生日を 'LatestBirthdate' として取得 --
SELECT MAX(BirthDate) AS LatestBirthdate
FROM Employees;7. GROUP BY と MAX() の併用
ここでは MAX() 関数と GROUP BY 句を併用して、Products テーブルのカテゴリ(CategoryID)ごとに最高価格をリターンします。
7.1 例
-- カテゴリIDごとにグループ化し、それぞれの最高価格を取得 --
SELECT MAX(Price) AS HighestPrice, CategoryID
FROM Products
GROUP BY CategoryID;