ROWNUM en SQL (Oracle)

A veces necesitas un número de fila en el resultado: rankings, paginación o identificar la fila N sin una clave primaria.

ROWNUM en SQL (Oracle) responde a una necesidad muy concreta: controlar cuántas filas devuelve una consulta. Es imprescindible al explorar datos y al paginar resultados en aplicaciones.

En SQLite y MySQL se usa LIMIT; en SQL Server TOP; en Oracle ROWNUM o funciones de ventana. El concepto es el mismo: acotar el resultado.

Esta lección sobre ROWNUM en SQL (Oracle) forma parte del tutorial SQL de The Data Schools. Cada ejemplo está pensado para ejecutarse en el editor con las tablas de demostración Clientes, Productos o Pedidos.

Limitar filas es esencial en exploración de datos y paginación. Sin un límite, una consulta sobre tablas grandes puede devolver millones de filas y consumir memoria innecesariamente.

Consejo: escribe consultas pequeñas y verifica el resultado antes de combinar varias cláusulas. Así localizas errores de sintaxis más rápido.

Oracle usa ROWNUM; SQL Server y SQLite emplean ROW_NUMBER() como función de ventana.


ROW_NUMBER() en SQLite

Sintaxis: ROW_NUMBER() OVER (ORDER BY columna)

Devuelve 1, 2, 3… según el orden indicado.

Numerar clientes por ventas

    SELECT ROW_NUMBER() OVER (ORDER BY N_Ventas DESC) AS Posicion,
       Nombre_Cliente, N_Ventas
FROM Clientes
LIMIT 5;

  
Abrir en editor

Paginación básica

Combina ROW_NUMBER con subconsulta o LIMIT/OFFSET para paginar resultados.

Top 3 por posición

    SELECT Posicion, Nombre_Cliente, N_Ventas
FROM (
  SELECT ROW_NUMBER() OVER (ORDER BY N_Ventas DESC) AS Posicion,
         Nombre_Cliente, N_Ventas
  FROM Clientes
)
WHERE Posicion <= 3;

  
Abrir en editor

Resumen

<ul class="list-container"><li>ROW_NUMBER() numera filas según ORDER BY.

  • ROWNUM (Oracle) se evalúa antes del ORDER BY — comportamiento distinto.
  • Útil para rankings y paginación.
  • Cómo practicar en el editor

    1. Pulsa Pruébalo tú mismo en un ejemplo.
    2. Cambia un filtro, columna o literal.
    3. Ejecuta y compara el resultado con la tabla de ejemplo.

    Comprueba lo aprendido

    Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.