SQLite min()
Funkce vrací minimální hodnotu, která není NULL ze všech hodnot ve skupině.
Minimální hodnota je hodnota, která se objeví jako první v dotazu, který používá ORDER BY
klauzule ve stejném sloupci.
Příklad
Zde je příklad k demonstraci.
SELECT min(Price) FROM Products;
Výsledek:
89.27
Zde je dotaz, který vrátí všechny řádky v této tabulce.
SELECT * FROM Products
ORDER BY Price;
Výsledek:
ProductId ProductName Price ---------- ----------- ---------- 5 Red Widget 3 Widget Open 89.27 4 Foobar Set 120.0 2 Widget Hold 139.5 1 Blue Widget 389.45
Všimněte si, že první řádek má pro cenu hodnotu NULL. min()
funkce to ignoruje a používá minimální hodnotu, která není NULL.
Kombinovat Min() s Count()
Zde je příklad, který kombinuje min()
funkce s count()
funkce vrátí minimální počet.
SELECT min(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Výsledek:
1
Můžeme to ověřit spuštěním dalšího dotazu s ORDER BY
doložka.
SELECT
ar.Name,
count(al.Title) AS AlbumCount
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
GROUP BY ar.Name
ORDER BY AlbumCount ASC
LIMIT 3;
Výsledek:
Name AlbumCount ------------------------------ ---------- Aaron Copland & London Symphon 1 Aaron Goldberg 1 Academy of St. Martin in the F 1
Kombinovat s Max() a Avg()
Zde je další příklad, kam přidám max()
a avg()
funkce do mixu.
SELECT
min(AlbumCount),
max(AlbumCount),
avg(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Výsledek:
min(AlbumCount) max(AlbumCount) avg(AlbumCount) --------------- --------------- ---------------- 1 21 1.70098039215686
Použití Min() na řetězcích
Jak již bylo zmíněno, min()
vrátí hodnotu, která by byla vrácena jako první pomocí ORDER BY
klauzule (za předpokladu, že používá výchozí vzestupné pořadí).
Stejný koncept platí pro řetězce.
SELECT min(ProductName) FROM Products;
Výsledek:
Blue Widgets (6 Pack)
Tento výsledek můžeme ověřit dotazem pomocí ORDER BY
doložka.
SELECT * FROM Products
ORDER BY ProductName;
Výsledek:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 4 Foobar Set 120.0 5 Red Widget 2 Widget Holder 139.5 3 Widget Opener 89.27