Agregación · máximos

MAX

MAX encuentra el mayor valor del conjunto; para obtener la fila completa debes indicar cómo resolver los empates.

Lectura: 5–7 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué devuelve MAX

MAX devuelve el mayor valor no nulo de una expresión. Es útil para importes, fechas, puntuaciones y cualquier tipo que el motor pueda ordenar.

El resultado no incluye automáticamente las demás columnas de la fila. Preguntar por «el mayor total» y por «el pedido con mayor total» son necesidades distintas.

Sintaxis básica

Estructura
SELECT MAX(expresion) AS maximo
FROM tabla
WHERE condicion;

Ejemplo guiado: pedido enviado de mayor importe

Para obtener la fila completa ordenamos los pedidos enviados de mayor a menor y añadimos un desempate por id.

SQL
SELECT id, estado, total
FROM pedidos
WHERE estado = 'enviado'
ORDER BY total DESC, id ASC
LIMIT 1;
Fila comprobada
idestadototal
106enviado1088,0

MAX(total) devolvería 1088,0, pero no el identificador. El orden permite recuperar una fila concreta. Si quieres conservar todos los empates, compara contra una subconsulta con MAX(total).

Filtros, NULL y conjuntos vacíos

MAX omite los valores nulos. Si el filtro no deja ningún valor conocido, devuelve NULL. Ese resultado puede significar «no hay datos», no necesariamente cero ni una fecha mínima.

Error frecuente

Mezclar MAX con una columna sin relación garantizada

SELECT id, MAX(total) FROM pedidos no identifica de forma portable el pedido máximo. Usa ORDER BY ... DESC con un límite o una subconsulta que preserve los empates.

Comprueba lo aprendido

Básica · máximo de fecha

Busca el registro más reciente

Devuelve la fecha de registro más reciente de la tabla clientes. Usa el alias ultimo_registro.

Compatibilidad entre motores

MAX está ampliamente disponible, ignora valores nulos y devuelve el mismo tipo lógico que su entrada según las reglas del motor. La comparación de texto depende de la intercalación; para fechas, utiliza tipos o formatos que mantengan el orden cronológico.

Qué debes recordar

  • MAX devuelve un valor agregado.
  • Para obtener la fila, ordena o usa una subconsulta.
  • Define un desempate si solo quieres una fila.
  • Sin valores conocidos, el resultado es NULL.

Conceptos relacionados

Fuentes técnicas consultadas