MariaDBでは、MAX()
は、指定された式の最大値を返す集計関数です。
構文
構文は次のようになります:
MAX([DISTINCT] expr)
サンプルデータ
次のデータを含むテーブルがあるとします。
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
結果:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
例
次のクエリを使用して、そのテーブルから最大価格を取得できます。
SELECT MAX(ProductPrice)
FROM Products;
結果:
245.00
この場合、価格情報はProductPrice
に保存されます 列なので、それを引数としてMAX()
に渡します。 関数は、結果を計算して返します。
フィルタリングされた結果
MAX()
関数は、クエリによって返された行を操作します。したがって、結果をフィルタリングすると、MAX()
の結果になります。 それを反映します。
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
結果:
25.99
この場合、25.99は、指定されたベンダーが提供するすべての製品の最高価格です。
日付/時刻データ
MAX()
を使用できます 日付/時刻の値。
次の表があるとします。
SELECT PetName, DOB
FROM Pets;
結果:
+---------+------------+ | PetName | DOB | +---------+------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+------------+
MAX()
を使用できます 最大生年月日を見つけるには(DOB
。
SELECT MAX(DOB)
FROM Pets;
結果:
2020-11-28
これは最年少のペットの生年月日です。
NULL
値
MAX()
関数はNULL
を無視します 値。上記のサンプルテーブルでは、最後の2行にNULL
があります。 DOB
の値 列ですが、MAX()
では無視されました 例。
キャラクターデータ
文字データ列で使用する場合、MAX()
照合シーケンスで最も高い値を見つけます。
例:
SELECT MAX(ProductName)
FROM Products;
結果:
Straw Dog Box
DISTINCT
キーワード
DISTINCT
キーワードはMAX()
で使用できます ただし、これはDISTINCT
を省略した場合と同じ結果になります。 。 DISTINCT
を許可する この関数により、MariaDBはISOSQL標準に準拠できます。
したがって、これを行うことができます:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
結果:
245.00
ただし、結果には影響しません。
DISTINCT
キーワードは、他のコンテキスト(COUNT()
など)で使用すると非常に便利です。 関数)ですが、MAX()
と一緒に使用しても意味がありません 。 DISTINCT
キーワードは重複を削除しますが、MAX()
の場合 MAX()
なので、違いはありません。 同じ最大値を共有する行の数に関係なく、同じ結果を返します。
ウィンドウ関数
MAX()
関数はOVER
と組み合わせて使用できます ウィンドウ関数を作成する句。
SQL MAX()
を参照してください 例として初心者向け。