Op het eerste gezicht lijkt de MySQL MAX()
en GREATEST()
functies voeren een vergelijkbare bewerking uit. Ze retourneren allebei de maximale waarde uit een reeks waarden. Er is echter een verschil tussen deze twee functies.
De beste manier om het verschil tussen deze twee functies te zien, is door hun syntaxis te vergelijken.
Syntaxis
De syntaxis voor elke functie gaat als volgt:
MAX([DISTINCT] expr) [over_clause] GREATEST(value1,value2,...)
Ze zien er dus al heel anders uit. De MAX()
functie accepteert de DISTINCT
trefwoord en een OVER
clausule (en de GREATEST()
functie niet).
Het belangrijkste verschil tussen deze twee functies zit echter in de geaccepteerde argumenten. Specifiek:
MAX()
accepteert één argumentGREATEST()
accepteert meerdere argumenten
Dus MAX()
wordt meestal gebruikt om de maximale waarde in een kolom in een database te retourneren. De tabel kan veel rijen bevatten, maar deze functie retourneert degene met de maximale waarde.
GREATEST()
aan de andere kant retourneert het het argument met de maximale waarde uit de lijst met argumenten die eraan zijn doorgegeven. Dus je zou bijvoorbeeld 3 argumenten aan deze functie kunnen doorgeven en het zal degene met de grootste waarde teruggeven.
Voorbeeld 1 – De MAX() Functie
Hier is een voorbeeld om de MAX()
. te demonstreren functie.
SELECT MAX(Population) AS 'Result' FROM City;
Resultaat:
+----------+ | Result | +----------+ | 10500000 | +----------+
Dit voorbeeld vindt de stad met de grootste populatie van de City
tafel. De kolom die de bevolking voor elke stad bevat, heet Population
.
Het belangrijkste punt van dit voorbeeld is dat er maar één argument aan de functie is geleverd, maar dat er meerdere rijen zijn opgevraagd.
Als u meerdere argumenten probeert door te geven aan de MAX()
functie krijgt u een foutmelding.
Voorbeeld 2 – De GREATEST() Functie
Hier is een voorbeeld om de GREATEST()
. te demonstreren functie.
SELECT GREATEST(1, 5, 9) AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | 9 | +--------+
Dus in dit geval geven we drie argumenten. Elk argument wordt vergeleken met het andere. Dit is in tegenstelling tot het enkele argument dat wordt gegeven aan de MAX()
functie.
Als u een enkel argument probeert door te geven aan de GREATEST()
functie krijgt u een foutmelding.