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;
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;
Resumen
<ul class="list-container"><li>ROW_NUMBER() numera filas según ORDER BY.
ORDER BY — comportamiento distinto.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.
