SQLite min()
функцията връща минималната стойност, различна от NULL от всички стойности в група.
Минималната стойност е стойността, която ще се появи първа в заявка, която използва ORDER BY
клауза в същата колона.
Пример
Ето пример за демонстрация.
SELECT min(Price) FROM Products;
Резултат:
89.27
Ето заявка, която връща всички редове в тази таблица.
SELECT * FROM Products
ORDER BY Price;
Резултат:
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
Забележете, че първият ред има стойност NULL за цената. min()
функцията игнорира това и използва минималната стойност, различна от NULL.
Комбинирайте Min() с Count()
Ето пример, който комбинира min()
функция с count()
функция за връщане на минималния брой.
SELECT min(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Резултат:
1
Можем да проверим това, като изпълним друга заявка с ORDER BY
клауза.
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;
Резултат:
Name AlbumCount ------------------------------ ---------- Aaron Copland & London Symphon 1 Aaron Goldberg 1 Academy of St. Martin in the F 1
Комбинирайте с Max() и Avg()
Ето още един пример, в който добавям max()
и avg()
функции към микса.
SELECT
min(AlbumCount),
max(AlbumCount),
avg(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);
Резултат:
min(AlbumCount) max(AlbumCount) avg(AlbumCount) --------------- --------------- ---------------- 1 21 1.70098039215686
Използване на Min() върху низове
Както споменахме, min()
връща стойността, която ще бъде върната първа с помощта на ORDER BY
клауза (ако приемем, че използва възходящ ред по подразбиране).
Същата концепция се отнася и за низовете.
SELECT min(ProductName) FROM Products;
Резултат:
Blue Widgets (6 Pack)
Можем да проверим този резултат със заявка, използвайки ORDER BY
клауза.
SELECT * FROM Products
ORDER BY ProductName;
Резултат:
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