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