Contenido de esta guía
Qué devuelve MIN
MIN devuelve el menor valor no nulo de una expresión. Puede trabajar con números, fechas y otros tipos ordenables admitidos por el motor.
La función devuelve un valor, no la fila completa que lo contiene. Para recuperar el producto más barato, por ejemplo, necesitas ordenar o comparar contra el mínimo y decidir qué hacer si existe un empate.
Sintaxis básica
SELECT MIN(expresion) AS minimo
FROM tabla
WHERE condicion;Ejemplo guiado: primera fecha de pedido
SELECT MIN(fecha) AS primer_pedido
FROM pedidos;| primer_pedido |
|---|
| 2025-05-02 |
Las fechas están almacenadas con formato ISO AAAA-MM-DD, que SQLite puede comparar cronológicamente como texto. En otros formatos, convierte o utiliza un tipo de fecha apropiado antes de buscar el mínimo.
Cómo recuperar la fila asociada
SELECT id, nombre, precio
FROM productos
WHERE stock > 0
ORDER BY precio ASC, id ASC
LIMIT 1;El orden devuelve una fila concreta y usa id como desempate. Otra opción es comparar precio con una subconsulta que calcule MIN(precio); esa forma devuelve todas las filas empatadas.
Error frecuente
Seleccionar columnas que no pertenecen al mínimo
Una consulta como SELECT nombre, MIN(precio) FROM productos no es portable y puede asociar un nombre arbitrario al mínimo. Calcula primero el valor o utiliza un orden determinista para recuperar la fila.
Comprueba lo aprendido
Encuentra el precio mínimo disponible
Devuelve el menor precio entre los productos cuyo stock sea mayor que cero. Usa el alias precio_minimo_disponible.
precio.MIN(precio) y un alias descriptivo.Solución razonada
SELECT MIN(precio) AS precio_minimo_disponible
FROM productos
WHERE stock > 0;| precio_minimo_disponible |
|---|
| 12,0 |
El menor precio entre los productos disponibles es 12,0, correspondiente al Cable USB-C.
Compatibilidad entre motores
MIN es común, ignora valores nulos y devuelve NULL cuando no existe ningún valor no nulo. Los tipos que pueden ordenarse y las reglas de comparación de texto dependen del motor y de su intercalación.
Qué debes recordar
MINdevuelve el menor valor, no toda la fila.- Los
NULLno participan en el cálculo. - Un empate requiere una decisión explícita.
- Las fechas deben tener un tipo o formato comparable.