I MariaDB, MIN()
er en aggregeret funktion, der returnerer minimumsværdien i et givet udtryk.
Syntaks
Syntaksen ser sådan ud:
MIN([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å minimumsprisen fra den tabel.
SELECT MIN(ProductPrice)
FROM Products;
Resultat:
9.99
I dette tilfælde gemmes prisoplysninger i ProductPrice
kolonne, og så sender vi det som et argument til MIN()
funktion, som derefter beregner og returnerer resultatet.
Filtrerede resultater
MIN()
funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, outputtet af MIN()
vil afspejle det.
SELECT MIN(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultat:
11.99
I dette tilfælde er 11,99 minimumsprisen ud af alle de produkter, der tilbydes af den angivne leverandør.
Data-/tidsdata
Du kan bruge MIN()
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 MIN()
for at finde minimumsfødselsdatoen (DOB
).
SELECT MIN(DOB)
FROM Pets;
Resultat:
2018-10-01
Dette ville være fødselsdatoen for det ældste kæledyr.
NULL
Værdier
MIN()
funktionen ignorerer enhver NULL
værdier. I vores eksempeltabel ovenfor indeholder de sidste to rækker NULL
værdier i deres DOB
kolonne, men de blev ignoreret i vores MIN()
eksempel.
Tegndata
Når det bruges sammen med tegndatakolonner, MIN()
finder den værdi, der er lavest i sorteringssekvensen.
Eksempel:
SELECT MIN(ProductName)
FROM Products;
Resultat:
Bottomless Coffee Mugs (4 Pack)
DISTINCT
Søgeord
DISTINCT
nøgleordet kan bruges med MIN()
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 MIN(DISTINCT ProductPrice)
FROM Products;
Resultat:
9.99
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 MIN()
. DISTINCT
søgeord fjerner dubletter, men i tilfælde af MIN()
det vil ikke gøre nogen forskel, fordi MIN()
returnerer det samme resultat, uanset hvor mange rækker der deler den samme minimumsværdi.
Vinduefunktioner
MIN()
funktionen kan bruges sammen med OVER
klausul for at oprette en vinduesfunktion.
Se SQL MIN()
For begyndere for eksempel.