In MariaDB, MAX()
is een aggregatiefunctie die de maximale waarde in een bepaalde uitdrukking retourneert.
Syntaxis
De syntaxis gaat als volgt:
MAX([DISTINCT] expr)
Voorbeeldgegevens
Stel dat we een tabel hebben met de volgende gegevens:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Resultaat:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Voorbeeld
We kunnen de volgende zoekopdracht gebruiken om de maximale prijs uit die tabel te halen.
SELECT MAX(ProductPrice)
FROM Products;
Resultaat:
245.00
In dit geval wordt prijsinformatie opgeslagen in de ProductPrice
kolom, en dus geven we dat door als argument aan de MAX()
functie, die vervolgens het resultaat berekent en retourneert.
Gefilterde resultaten
De MAX()
functie werkt op de rijen die door de query worden geretourneerd. Dus als u de resultaten filtert, wordt het resultaat van MAX()
zal dat weerspiegelen.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultaat:
25.99
In dit geval is 25,99 de maximale prijs van alle producten die door de opgegeven leverancier worden aangeboden.
Datum-/tijdgegevens
U kunt MAX()
. gebruiken op datum/tijd-waarden.
Stel dat we de volgende tabel hebben:
SELECT PetName, DOB
FROM Pets;
Resultaat:
+---------+------------+ | 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 | +---------+------------+
We kunnen MAX()
. gebruiken om de maximale geboortedatum te vinden (DOB
).
SELECT MAX(DOB)
FROM Pets;
Resultaat:
2020-11-28
Dit zou de geboortedatum van het jongste huisdier zijn.
NULL
Waarden
De MAX()
functie negeert elke NULL
waarden. In onze voorbeeldtabel hierboven hebben de laatste twee rijen NULL
waarden in hun DOB
kolom, maar dat werd genegeerd in onze MAX()
voorbeeld.
Karaktergegevens
Bij gebruik met karaktergegevenskolommen, MAX()
vindt de waarde die het hoogst is in de sorteervolgorde.
Voorbeeld:
SELECT MAX(ProductName)
FROM Products;
Resultaat:
Straw Dog Box
De DISTINCT
Zoekwoord
De DISTINCT
trefwoord kan worden gebruikt met de MAX()
functie geeft dit echter hetzelfde resultaat als het weglaten van DISTINCT
. De DISTINCT
. toestaan Met deze functie kan MariaDB voldoen aan de ISO SQL-standaard.
Daarom kunnen we dit doen:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Resultaat:
245.00
Maar het heeft geen invloed op de resultaten.
De DISTINCT
trefwoord kan erg handig zijn bij gebruik met andere contexten (bijv. met de COUNT()
functie), maar het heeft geen betekenis bij gebruik met MAX()
. De DISTINCT
trefwoord verwijdert duplicaten, maar in het geval van MAX()
het maakt geen verschil omdat MAX()
geeft hetzelfde resultaat, ongeacht hoeveel rijen dezelfde maximale waarde delen.
Vensterfuncties
De MAX()
functie kan worden gebruikt in combinatie met de OVER
clausule om een vensterfunctie te maken.
Zie SQL MAX()
Voor beginners bijvoorbeeld.