SQLite min()
funktion returnerar det lägsta icke-NULL-värdet från alla värden i en grupp.
Minimivärdet är det värde som skulle visas först i en fråga som använder en ORDER BY
klausul i samma kolumn.
Exempel
Här är ett exempel att visa.
SELECT min(Price) FROM Products;
Resultat:
89.27
Här är en fråga som returnerar alla rader i den tabellen.
SELECT * FROM Products
ORDER BY Price;
Resultat:
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
Observera att den första raden har ett NULL-värde för priset. min()
funktionen ignorerar det och använder det lägsta icke-NULL-värdet.
Kombinera Min() med Count()
Här är ett exempel som kombinerar min()
funktion med count()
funktion för att returnera det minsta antalet.
SELECT min(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Resultat:
1
Vi kan verifiera detta genom att köra en annan fråga med en ORDER BY
klausul.
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;
Resultat:
Name AlbumCount ------------------------------ ---------- Aaron Copland & London Symphon 1 Aaron Goldberg 1 Academy of St. Martin in the F 1
Kombinera med Max() och Avg()
Här är ett annat exempel där jag lägger till max()
och avg()
fungerar till mixen.
SELECT
min(AlbumCount),
max(AlbumCount),
avg(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Resultat:
min(AlbumCount) max(AlbumCount) avg(AlbumCount) --------------- --------------- ---------------- 1 21 1.70098039215686
Använda Min() på strängar
Som nämnts, min()
returnerar värdet som skulle returneras först med ORDER BY
klausul (förutsatt att den använder standard stigande ordning).
Samma koncept gäller för strängar.
SELECT min(ProductName) FROM Products;
Resultat:
Blue Widgets (6 Pack)
Vi kan verifiera detta resultat med en fråga med ORDER BY
klausul.
SELECT * FROM Products
ORDER BY ProductName;
Resultat:
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