一見すると、MySQL MAX()
およびGREATEST()
関数は同様の操作を実行します。どちらも、値の範囲から最大値を返します。ただし、これら2つの機能には違いがあります。
これら2つの関数の違いを確認する最良の方法は、それらの構文を比較することです。
構文
各関数の構文は次のようになります:
MAX([DISTINCT] expr) [over_clause] GREATEST(value1,value2,...)
すでに、それらは完全に異なって見えます。 MAX()
関数はDISTINCT
を受け入れます キーワードとOVER
句(およびGREATEST()
機能はありません)。
ただし、これら2つの関数の主な違いは、受け入れられる引数にあります。具体的には:
-
MAX()
1つの引数を受け入れます -
GREATEST()
複数の引数を受け入れます
したがって、MAX()
通常、データベースの列の最大値を返すために使用されます。テーブルには多くの行を含めることができますが、この関数は最大値の行を返します。
GREATEST()
一方、渡された引数のリストから最大値の引数を返します。したがって、たとえば、この関数に3つの引数を渡すと、最大値の引数が返されます。
例1-MAX()関数
MAX()
を示す例を次に示します。 機能。
SELECT MAX(Population) AS 'Result' FROM City;
結果:
+----------+ | Result | +----------+ | 10500000 | +----------+
この例では、City
から人口が最も多い都市を検索します。 テーブル。各都市の人口を含む列は、Population
と呼ばれます。 。
この例の重要な点は、関数に引数が1つだけ指定されたが、複数の行が照会されたことです。
MAX()
に複数の引数を渡そうとした場合 関数を使用するとエラーが発生します。
例2– GREATEST()関数
GREATEST()
を示す例を次に示します。 機能。
SELECT GREATEST(1, 5, 9) AS 'Result';
結果:
+--------+ | Result | +--------+ | 9 | +--------+
したがって、この場合、3つの引数を提供します。各引数は他の引数と比較されます。これは、MAX()
に提供される単一の引数とは対照的です。 機能。
GREATEST()
に単一の引数を渡そうとした場合 関数を使用するとエラーが発生します。