sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona SQLite Min()

El min() de SQLite La función devuelve el valor mínimo no NULL de todos los valores de un grupo.

El valor mínimo es el valor que aparecería primero en una consulta que utiliza un ORDER BY cláusula en la misma columna.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

SELECT min(Price) FROM Products;

Resultado:

89.27

Aquí hay una consulta que devuelve todas las filas de esa tabla.

SELECT * FROM Products 
ORDER BY Price;

Resultado:

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    

Observe que la primera fila tiene un valor NULL para el precio. El min() La función ignora eso y usa el valor mínimo no NULL.

Combinar Min() con Count()

Aquí hay un ejemplo que combina min() función con el count() función para devolver el recuento mínimo.

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

Resultado:

1       

Podemos verificar esto ejecutando otra consulta con un ORDER BY cláusula.

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;

Resultado:

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

Combinar con Max() y Avg()

Aquí hay otro ejemplo donde agrego el max() y avg() funciones a la mezcla.

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

Resultado:

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

Uso de Min() en cadenas

Como se mencionó, min() devuelve el valor que se devolvería primero utilizando ORDER BY cláusula (asumiendo que está usando el orden ascendente predeterminado).

Este mismo concepto se aplica a las cadenas.

SELECT min(ProductName) FROM Products;

Resultado:

Blue Widgets (6 Pack)

Podemos verificar este resultado con una consulta usando el ORDER BY cláusula.

SELECT * FROM Products 
ORDER BY ProductName;

Resultado:

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