sql >> Databasteknik >  >> RDS >> SQLite

Hur SQLite Min() fungerar

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     

  1. Lägg till valutatecken £, $ i vissa fält ORACLE

  2. ASP Classic SQL Query felmeddelande, rätt syntax tack

  3. Skapa MySQL-databas från Java

  4. De bästa tillgängliga databasövervakningsalternativen för ditt företag