SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona SQLite Min()

SQLite min() La funzione restituisce il valore minimo non NULL da tutti i valori in un gruppo.

Il valore minimo è il valore che verrebbe visualizzato per primo in una query che utilizza un ORDER BY clausola sulla stessa colonna.

Esempio

Ecco un esempio da dimostrare.

SELECT min(Price) FROM Products;

Risultato:

89.27

Ecco una query che restituisce tutte le righe in quella tabella.

SELECT * FROM Products 
ORDER BY Price;

Risultato:

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    

Si noti che la prima riga ha un valore NULL per il prezzo. Il min() la funzione lo ignora e usa il valore minimo non NULL.

Combina Min() con Count()

Ecco un esempio che combina min() funzione con il count() funzione per restituire il conteggio minimo.

SELECT min(AlbumCount) 
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);

Risultato:

1       

Possiamo verificarlo eseguendo un'altra query con un ORDER BY clausola.

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;

Risultato:

Name                            AlbumCount
------------------------------  ----------
Aaron Copland & London Symphon  1         
Aaron Goldberg                  1         
Academy of St. Martin in the F  1         

Combina con Max() e Avg()

Ecco un altro esempio in cui aggiungo max() e avg() funzioni al mix.

SELECT 
  min(AlbumCount),
  max(AlbumCount),
  avg(AlbumCount)
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);

Risultato:

min(AlbumCount)  max(AlbumCount)  avg(AlbumCount) 
---------------  ---------------  ----------------
1                21               1.70098039215686

Utilizzo di Min() sulle stringhe

Come accennato, min() restituisce il valore che verrebbe restituito per primo utilizzando ORDER BY clausola (supponendo che utilizzi l'ordine crescente predefinito).

Questo stesso concetto si applica alle stringhe.

SELECT min(ProductName) FROM Products;

Risultato:

Blue Widgets (6 Pack)

Possiamo verificare questo risultato con una query utilizzando il ORDER BY clausola.

SELECT * FROM Products 
ORDER BY ProductName;

Risultato:

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