V MariaDB, MIN()
je agregační funkce, která vrací minimální hodnotu v daném výrazu.
Syntaxe
Syntaxe vypadá takto:
MIN([DISTINCT] expr)
Ukázková data
Předpokládejme, že máme tabulku s následujícími údaji:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Výsledek:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Příklad
K získání minimální ceny z této tabulky můžeme použít následující dotaz.
SELECT MIN(ProductPrice)
FROM Products;
Výsledek:
9.99
V tomto případě jsou informace o ceně uloženy v ProductPrice
a tak to předáme jako argument do MIN()
funkce, která pak vypočítá a vrátí výsledek.
Filtrované výsledky
MIN()
funkce pracuje na řádcích vrácených dotazem. Pokud tedy filtrujete výsledky, výstup MIN()
to bude odrážet.
SELECT MIN(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Výsledek:
11.99
V tomto případě je 11,99 minimální cena ze všech produktů nabízených uvedeným prodejcem.
Datum/čas
Můžete použít MIN()
na hodnotách data/času.
Předpokládejme, že máme následující tabulku:
SELECT PetName, DOB
FROM Pets;
Výsledek:
+---------+------------+ | 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 | +---------+------------+
Můžeme použít MIN()
najít minimální datum narození (DOB
).
SELECT MIN(DOB)
FROM Pets;
Výsledek:
2018-10-01
To by bylo datum narození nejstaršího mazlíčka.
NULL
Hodnoty
MIN()
funkce ignoruje všechny NULL
hodnoty. V naší vzorové tabulce výše obsahují poslední dva řádky NULL
hodnoty v jejich DOB
sloupec, ale byly ignorovány v našem MIN()
příklad.
Údaje o postavách
Při použití se sloupci znakových dat MIN()
najde hodnotu, která je v porovnávací posloupnosti nejnižší.
Příklad:
SELECT MIN(ProductName)
FROM Products;
Výsledek:
Bottomless Coffee Mugs (4 Pack)
DISTINCT
Klíčové slovo
DISTINCT
klíčové slovo lze použít s MIN()
Tato funkce však vede ke stejnému výsledku jako vynechání DISTINCT
. Povolení DISTINCT
umožňuje MariaDB vyhovět standardu ISO SQL.
Proto můžeme udělat toto:
SELECT MIN(DISTINCT ProductPrice)
FROM Products;
Výsledek:
9.99
Ale nemá to žádný vliv na výsledky.
DISTINCT
klíčové slovo může být velmi užitečné při použití v jiných kontextech (např. s COUNT()
funkce), ale při použití s MIN()
nemá žádný význam . DISTINCT
klíčové slovo odstraní duplikáty, ale v případě MIN()
nebude to dělat žádný rozdíl, protože MIN()
vrátí stejný výsledek bez ohledu na to, kolik řádků sdílí stejnou minimální hodnotu.
Funkce okna
MIN()
funkci lze použít ve spojení s OVER
klauzule k vytvoření funkce okna.
Viz SQL MIN()
Příklad pro začátečníky.