SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Wie SQLite Min() funktioniert

Das SQLite min() Die Funktion gibt den kleinsten Nicht-NULL-Wert aus allen Werten in einer Gruppe zurück.

Der Mindestwert ist der Wert, der zuerst in einer Abfrage erscheinen würde, die einen ORDER BY verwendet Klausel in derselben Spalte.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT min(Price) FROM Products;

Ergebnis:

89.27

Hier ist eine Abfrage, die alle Zeilen in dieser Tabelle zurückgibt.

SELECT * FROM Products 
ORDER BY Price;

Ergebnis:

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    

Beachten Sie, dass die erste Zeile einen NULL-Wert für den Preis enthält. Der min() Die Funktion ignoriert dies und verwendet den minimalen Nicht-NULL-Wert.

Kombiniere Min() mit Count()

Hier ist ein Beispiel, das min() kombiniert Funktion mit dem count() Funktion, um die Mindestanzahl zurückzugeben.

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

Ergebnis:

1       

Wir können dies überprüfen, indem wir eine weitere Abfrage mit einem ORDER BY ausführen Klausel.

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;

Ergebnis:

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

Kombiniere mit Max() und Avg()

Hier ist ein weiteres Beispiel, in dem ich max() hinzufüge und avg() Funktionen zum Mix.

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

Ergebnis:

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

Verwenden von Min() auf Strings

Wie bereits erwähnt, min() gibt den Wert zurück, der zuerst mit ORDER BY zurückgegeben würde -Klausel (vorausgesetzt, es wird die standardmäßige aufsteigende Reihenfolge verwendet).

Dasselbe Konzept gilt für Strings.

SELECT min(ProductName) FROM Products;

Ergebnis:

Blue Widgets (6 Pack)

Wir können dieses Ergebnis mit einer Abfrage mit dem ORDER BY überprüfen Klausel.

SELECT * FROM Products 
ORDER BY ProductName;

Ergebnis:

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