Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MAX() vs. GREATEST() in MySQL:Was ist der Unterschied?

Auf den ersten Blick ist das MySQL MAX() und GREATEST() Funktionen führen eine ähnliche Operation aus. Beide geben den Maximalwert aus einem Bereich von Werten zurück. Es gibt jedoch einen Unterschied zwischen diesen beiden Funktionen.

Der beste Weg, den Unterschied zwischen diesen beiden Funktionen zu erkennen, ist, ihre Syntax zu vergleichen.

Syntax

Die Syntax für jede Funktion lautet wie folgt:

MAX([DISTINCT] expr) [over_clause]
GREATEST(value1,value2,...)

Sie sehen also schon ganz anders aus. Der MAX() Funktion akzeptiert den DISTINCT Schlüsselwort sowie ein OVER -Klausel (und die GREATEST() Funktion nicht).

Der Hauptunterschied zwischen diesen beiden Funktionen liegt jedoch in den akzeptierten Argumenten. Konkret:

  • MAX() akzeptiert ein Argument
  • GREATEST() akzeptiert mehrere Argumente

Also MAX() wird normalerweise verwendet, um den maximalen Wert in einer Spalte in einer Datenbank zurückzugeben. Die Tabelle könnte viele Zeilen enthalten, aber diese Funktion gibt diejenige mit dem größten Wert zurück.

GREATEST() gibt andererseits das maximalwertige Argument aus der Liste der übergebenen Argumente zurück. Sie könnten also sagen, 3 Argumente an diese Funktion übergeben und es wird dasjenige mit dem größten Wert zurückgegeben.

Beispiel 1 – Die MAX()-Funktion

Hier ist ein Beispiel zur Demonstration von MAX() Funktion.

SELECT MAX(Population) AS 'Result'
FROM City;

Ergebnis:

+----------+
| Result   |
+----------+
| 10500000 |
+----------+

Dieses Beispiel findet die Stadt mit der größten Bevölkerung aus City Tisch. Die Spalte, die die Bevölkerung für jede Stadt enthält, heißt Population .

Der entscheidende Punkt bei diesem Beispiel ist, dass der Funktion nur ein Argument übergeben, aber mehrere Zeilen abgefragt wurden.

Wenn Sie versuchen, mehrere Argumente an MAX() zu übergeben Funktion erhalten Sie eine Fehlermeldung.

Beispiel 2 – Die GREATEST()-Funktion

Hier ist ein Beispiel, um GREATEST() zu demonstrieren Funktion.

SELECT GREATEST(1, 5, 9) AS 'Result';

Ergebnis:

+--------+
| Result |
+--------+
|      9 |
+--------+

In diesem Fall liefern wir also drei Argumente. Jedes Argument wird mit dem anderen verglichen. Dies steht im Gegensatz zu dem einzelnen Argument, das für MAX() bereitgestellt wird Funktion.

Wenn Sie versuchen, ein einzelnes Argument an GREATEST() zu übergeben Funktion erhalten Sie eine Fehlermeldung.