SQLite min()
funktion returnerer den mindste ikke-NULL værdi fra alle værdier i en gruppe.
Minimumsværdien er den værdi, der vises først i en forespørgsel, der bruger en ORDER BY
klausul i samme kolonne.
Eksempel
Her er et eksempel til at demonstrere.
SELECT min(Price) FROM Products;
Resultat:
89.27
Her er en forespørgsel, der returnerer alle rækker i den tabel.
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
Bemærk, at den første række har en NULL-værdi for prisen. min()
funktionen ignorerer det og bruger den mindste ikke-NULL værdi.
Kombiner Min() med Count()
Her er et eksempel, der kombinerer min()
funktion med count()
funktion for at returnere minimumantal.
SELECT min(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Resultat:
1
Vi kan bekræfte dette ved at køre en anden forespørgsel 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
Kombiner med Max() og Avg()
Her er et andet eksempel, hvor jeg tilføjer max()
og avg()
funktioner til blandingen.
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
Brug af Min() på strenge
Som nævnt, min()
returnerer den værdi, der ville blive returneret først ved hjælp af ORDER BY
klausul (forudsat at den bruger standard stigende rækkefølge).
Det samme koncept gælder for strenge.
SELECT min(ProductName) FROM Products;
Resultat:
Blue Widgets (6 Pack)
Vi kan bekræfte dette resultat med en forespørgsel ved hjælp af 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