I MariaDB, MAX()
er en aggregeret funktion, der returnerer den maksimale værdi i et givet udtryk.
Syntaks
Syntaksen ser sådan ud:
MAX([DISTINCT] expr)
Eksempel på data
Antag, at vi har en tabel med følgende data:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Resultat:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Eksempel
Vi kan bruge følgende forespørgsel til at få den maksimale pris fra den tabel.
SELECT MAX(ProductPrice)
FROM Products;
Resultat:
245.00
I dette tilfælde gemmes prisoplysninger i ProductPrice
kolonne, og så sender vi det som et argument til MAX()
funktion, som derefter beregner og returnerer resultatet.
Filtrerede resultater
MAX()
funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, er resultatet af MAX()
vil afspejle det.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultat:
25.99
I dette tilfælde er 25,99 den maksimale pris for alle de produkter, der tilbydes af den angivne leverandør.
Data-/tidsdata
Du kan bruge MAX()
på dato/tidsværdier.
Antag, at vi har følgende tabel:
SELECT PetName, DOB
FROM Pets;
Resultat:
+---------+------------+ | 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 | +---------+------------+
Vi kan bruge MAX()
for at finde den maksimale fødselsdato (DOB
).
SELECT MAX(DOB)
FROM Pets;
Resultat:
2020-11-28
Dette ville være fødselsdatoen for det yngste kæledyr.
NULL
Værdier
MAX()
funktionen ignorerer enhver NULL
værdier. I vores eksempeltabel ovenfor har de sidste to rækker NULL
værdier i deres DOB
kolonne, men det blev ignoreret i vores MAX()
eksempel.
Tegndata
Når det bruges sammen med tegndatakolonner, MAX()
finder den værdi, der er højest i sorteringssekvensen.
Eksempel:
SELECT MAX(ProductName)
FROM Products;
Resultat:
Straw Dog Box
DISTINCT
Søgeord
DISTINCT
nøgleordet kan bruges med MAX()
funktion, men dette giver det samme resultat som at udelade DISTINCT
. Tillad DISTINCT
funktion gør det muligt for MariaDB at overholde ISO SQL-standarden.
Derfor kan vi gøre dette:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Resultat:
245.00
Men det har ingen indflydelse på resultaterne.
DISTINCT
Nøgleord kan være meget nyttigt, når det bruges sammen med andre sammenhænge (f.eks. med COUNT()
funktion), men den har ingen betydning, når den bruges sammen med MAX()
. DISTINCT
søgeord fjerner dubletter, men i tilfælde af MAX()
det vil ikke gøre nogen forskel, fordi MAX()
returnerer det samme resultat, uanset hvor mange rækker der deler den samme maksimale værdi.
Vinduefunktioner
MAX()
funktionen kan bruges sammen med OVER
klausul for at oprette en vinduesfunktion.
Se SQL MAX()
For begyndere for eksempel.