Consultas · máximo de filas

LIMIT

LIMIT establece cuántas filas como máximo puede devolver una consulta; ORDER BY decide cuáles entran en ese bloque.

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

Qué hace LIMIT

LIMIT fija un máximo de filas en el resultado. Es útil para explorar una tabla, construir una lista de los valores más altos o bajos y evitar mostrar más datos de los necesarios.

La cláusula no define el orden. Si la pregunta contiene palabras como “primeros”, “últimos”, “más caros” o “más recientes”, necesitas un ORDER BY que exprese ese criterio.

Sintaxis habitual

PostgreSQL, SQLite y MySQL
SELECT columnas
FROM tabla
ORDER BY criterio
LIMIT cantidad;

LIMIT 1 devuelve como máximo una fila; LIMIT 0 no devuelve ninguna. Si la tabla contiene menos filas que el límite, el resultado simplemente será más corto.

Ejemplo guiado: tres productos más caros

SQL
SELECT id,
       nombre,
       precio
FROM productos
ORDER BY precio DESC, id ASC
LIMIT 3;
Resultado comprobado
idnombreprecio
4Portátil Pro999,0
7Monitor 27249,0
3Monitor 24179,0

Primero se ordena de mayor a menor. Después se conserva el bloque de tres filas. id ASC ofrece un desempate estable si dos productos comparten precio.

LIMIT no significa aleatorio. Sin ORDER BY obtienes “hasta N filas”, pero no una muestra aleatoria ni un conjunto reproducible. Para aleatoriedad real necesitas una técnica específica del motor y valorar su coste.

Cuándo encaja y cuándo no

  • Exploración: inspeccionar unas pocas filas mientras conoces una tabla.
  • Top N global: los diez pedidos de mayor importe o los cinco productos con menos stock.
  • Paginación: combinarlo con OFFSET o utilizar otra estrategia.
  • Top N por grupo: un LIMIT final no devuelve N filas por categoría; normalmente necesitas una función de ventana como ROW_NUMBER.

Errores frecuentes

Confundir límite con filtro

LIMIT 3 no selecciona filas que cumplan una condición; solo recorta el resultado. Usa WHERE para decidir qué filas son candidatas.

Solicitar un top N sin ordenar

La consulta puede devolver tres filas, pero no puedes afirmar que sean las de mayor o menor valor.

Práctica: dos productos más baratos

Básica · top N

Construye un límite con significado

Devuelve id, nombre y precio de los dos productos más baratos. Ordena por precio ascendente y usa el id para desempatar.

Sintaxis según el motor

  • PostgreSQL, SQLite y MySQL: admiten LIMIT.
  • SQL Server: ofrece TOP para límites sencillos y OFFSET ... FETCH para paginación.
  • SQL estándar: utiliza FETCH FIRST ... ROWS ONLY, con disponibilidad y detalles según el motor.

Qué debes recordar

  • LIMIT fija un máximo de filas.
  • ORDER BY da significado a “primeras” o “mejores”.
  • WHERE filtra; LIMIT recorta.
  • Un límite global no equivale a N filas por cada grupo.

Conceptos relacionados

Fuentes técnicas consultadas