SQLite
 sql >> база данни >  >> RDS >> SQLite

Как работи SQLite Min().

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     

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON функции и оператори в SQLite (пълен списък)

  2. ако моята таблица има 4 колони и искам да извлека 3-тата колона какво да правя.

  3. Създайте колона за автоматично увеличение в SQLite

  4. 2 начина да добавите знак за процент към число в SQLite

  5. Как да генерирате произволно число в рамките на определен диапазон в SQLite