I MariaDB, MIN()
är en aggregerad funktion som returnerar minimivärdet i ett givet uttryck.
Syntax
Syntaxen ser ut så här:
MIN([DISTINCT] expr)
Exempeldata
Anta att vi har en tabell med följande 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 | +----------+---------------------------------+--------------+
Exempel
Vi kan använda följande fråga för att få minimipriset från den tabellen.
SELECT MIN(ProductPrice)
FROM Products;
Resultat:
9.99
I det här fallet lagras prisinformation i ProductPrice
kolumnen, och så skickar vi det som ett argument till MIN()
funktion, som sedan beräknar och returnerar resultatet.
Filtrerade resultat
MIN()
funktionen fungerar på raderna som returneras av frågan. Så om du filtrerar resultaten, utdata från MIN()
kommer att återspegla det.
SELECT MIN(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultat:
11.99
I det här fallet är 11,99 minimipriset av alla produkter som erbjuds av den angivna leverantören.
Datum/tiddata
Du kan använda MIN()
på datum/tidsvärden.
Anta att vi har följande tabell:
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 använda MIN()
för att hitta det lägsta födelsedatumet (DOB
).
SELECT MIN(DOB)
FROM Pets;
Resultat:
2018-10-01
Detta skulle vara födelsedatumet för det äldsta husdjuret.
NULL
Värden
MIN()
funktionen ignorerar någon NULL
värden. I vår exempeltabell ovan innehåller de två sista raderna NULL
värden i deras DOB
kolumnen, men de ignorerades i vår MIN()
exempel.
Teckendata
När den används med teckendatakolumner, MIN()
hittar det värde som är lägst i sorteringssekvensen.
Exempel:
SELECT MIN(ProductName)
FROM Products;
Resultat:
Bottomless Coffee Mugs (4 Pack)
DISTINCT
Nyckelord
DISTINCT
Nyckelordet kan användas med MIN()
funktion, men detta ger samma resultat som att utelämna DISTINCT
. Tillåter DISTINCT
funktionen gör det möjligt för MariaDB att följa ISO SQL-standarden.
Därför kan vi göra detta:
SELECT MIN(DISTINCT ProductPrice)
FROM Products;
Resultat:
9.99
Men det har ingen inverkan på resultaten.
DISTINCT
Nyckelordet kan vara mycket användbart när det används med andra sammanhang (t.ex. med COUNT()
funktion), men den har ingen betydelse när den används med MIN()
. DISTINCT
nyckelordet tar bort dubbletter, men i fallet med MIN()
det kommer inte att göra någon skillnad eftersom MIN()
returnerar samma resultat oavsett hur många rader som delar samma minimivärde.
Fönsterfunktioner
MIN()
funktionen kan användas tillsammans med OVER
klausul för att skapa en fönsterfunktion.
Se SQL MIN()
För nybörjare till exempel.