sql >> Databáze >  >> RDS >> SQLite

Jak funguje SQLite Min()

SQLite min() Funkce vrací minimální hodnotu, která není NULL ze všech hodnot ve skupině.

Minimální hodnota je hodnota, která se objeví jako první v dotazu, který používá ORDER BY klauzule ve stejném sloupci.

Příklad

Zde je příklad k demonstraci.

SELECT min(Price) FROM Products;

Výsledek:

89.27

Zde je dotaz, který vrátí všechny řádky v této tabulce.

SELECT * FROM Products 
ORDER BY Price;

Výsledek:

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    

Všimněte si, že první řádek má pro cenu hodnotu NULL. min() funkce to ignoruje a používá minimální hodnotu, která není NULL.

Kombinovat Min() s Count()

Zde je příklad, který kombinuje min() funkce s count() funkce vrátí minimální počet.

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

Výsledek:

1       

Můžeme to ověřit spuštěním dalšího dotazu s ORDER BY doložka.

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;

Výsledek:

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

Kombinovat s Max() a Avg()

Zde je další příklad, kam přidám max() a avg() funkce do mixu.

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

Výsledek:

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

Použití Min() na řetězcích

Jak již bylo zmíněno, min() vrátí hodnotu, která by byla vrácena jako první pomocí ORDER BY klauzule (za předpokladu, že používá výchozí vzestupné pořadí).

Stejný koncept platí pro řetězce.

SELECT min(ProductName) FROM Products;

Výsledek:

Blue Widgets (6 Pack)

Tento výsledek můžeme ověřit dotazem pomocí ORDER BY doložka.

SELECT * FROM Products 
ORDER BY ProductName;

Výsledek:

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. PL/SQL:jak vyvolám uživatelský vstup do procedury?

  2. Jak UNCOMPRESS() funguje v MariaDB

  3. Jak automaticky vygenerovat jedinečné ID v SQL, jako je UID12345678?

  4. Urychlete operace hromadného vkládání pomocí NHibernate