Curso de Fundamentos de Bases de Datos

ORDER BY y LIMIT en SQL: top N y paginación

Curso de Fundamentos de Bases de Datos

Contenido del curso

Grabación

PlatziLearn

0:0010:22

Recursos

Resumen

Responder preguntas como ¿cuáles son los diez productos más vendidos? o ¿cuáles son las cinco sucursales con mayor facturación? requiere dominar dos comandos fundamentales de SQL: ORDER BY y LIMIT. Estas instrucciones forman la base de cualquier reporte de negocio y permiten transformar datos crudos en información útil con apenas unas líneas de código.

¿Cómo funciona ORDER BY en SQL?

El comando ORDER BY permite ordenar los resultados de una consulta según una o más columnas. Por defecto, el orden siempre es ascendente (de menor a mayor), lo que se puede explicitar con la palabra clave ASC [01:25].

sql SELECT nombre, precio FROM productos ORDER BY precio ASC;

Si se necesita el orden inverso, se utiliza DESC para obtener un orden descendente (de mayor a menor) [02:05]:

sql SELECT nombre, precio FROM productos ORDER BY precio DESC;

  • ASC: ordena de menor a mayor (por defecto).
  • DESC: ordena de mayor a menor.
  • Ambos se aplican a números, textos y fechas.

¿Cómo ordenar por múltiples columnas?

Una funcionalidad muy utilizada es aplicar ORDER BY sobre varias columnas con criterios distintos [02:45]. Por ejemplo, ordenar primero por categoria_id de forma ascendente y luego por precio de forma descendente dentro de cada categoría:

sql SELECT nombre, categoria_id, precio FROM productos ORDER BY categoria_id ASC, precio DESC;

El resultado agrupa los productos por categoría (1, 2, 3…) y, dentro de cada grupo, muestra los precios de mayor a menor [03:30]. Este patrón es clave para construir reportes segmentados.

¿Cómo obtener el top N de resultados con LIMIT?

Combinar ORDER BY con LIMIT permite responder preguntas tipo top N [04:15]. Para obtener los cinco productos más caros:

sql SELECT nombre, precio FROM productos ORDER BY precio DESC LIMIT 5;

Cambiar el número del LIMIT ajusta la cantidad de resultados. Un LIMIT 10 entrega un top ten, mientras que un LIMIT 3 devuelve solo los tres primeros [05:10].

¿Cómo encontrar los pedidos más recientes?

Para consultar los tres pedidos más recientes, se ordena la columna de fecha de forma descendente y se limita a tres resultados [05:30]:

sql SELECT pedido_id, cliente_id, fecha FROM pedidos ORDER BY fecha DESC LIMIT 3;

Ordenar una fecha de forma descendente significa ir desde hoy hacia el pasado, mostrando primero lo más nuevo.

¿Qué es OFFSET y cómo paginar resultados en SQL?

El comando OFFSET complementa a LIMIT y permite paginar los resultados [06:25]. Funciona indicando cuántas filas saltar antes de comenzar a devolver datos:

sql -- Página 1: filas 1 a 10 SELECT nombre, precio FROM productos ORDER BY nombre LIMIT 10 OFFSET 0;

-- Página 2: filas 11 a 20 SELECT nombre, precio FROM productos ORDER BY nombre LIMIT 10 OFFSET 10;

-- Página 3: filas 21 a 30 SELECT nombre, precio FROM productos ORDER BY nombre LIMIT 10 OFFSET 20;

  • OFFSET 0: comienza desde la primera fila.
  • OFFSET 10: salta las primeras diez filas.
  • OFFSET 20: salta las primeras veinte filas.

Este mecanismo resulta útil para exportar datos en bloques hacia un CSV, un correo electrónico o cualquier informe con límite de filas por página [07:10].

¿Cómo trata SQL los valores nulos al ordenar?

Cuando existen datos nulos en una columna, PostgreSQL los ubica en posiciones específicas según el tipo de orden [07:50]:

  • Orden ascendente: los nulos quedan al final.
  • Orden descendente: los nulos aparecen al principio.

sql -- Nulos al final SELECT nombre, precio FROM productos ORDER BY precio ASC;

-- Nulos al principio SELECT nombre, precio FROM productos ORDER BY precio DESC;

Esto ocurre porque SQL asume que un valor nulo es inferior a cualquier otro valor, lo que lo posiciona después de todos en orden ascendente y antes de todos en descendente.

Para poner en práctica lo aprendido, intenta escribir tres consultas: los cinco productos más caros del catálogo, los diez clientes registrados más recientemente y los últimos tres pedidos ordenados por fecha descendente. Comparte tus resultados en los comentarios.

ORDER BY y LIMIT en SQL: top N y paginación

Curso de Fundamentos de Bases de Datos

Clase 11 de 33

Clase 11 / 33