Menu
Coddy logo textTech

Función ROW_NUMBER

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 57 de 72.

Las funciones de ventana realizan cálculos en un conjunto de filas de la tabla relacionadas con la fila actual. A diferencia de las funciones de agregación normales, las funciones de ventana no condensan los resultados en una sola fila.

Son especialmente útiles cuando necesitas:

  • Calcular totales acumulados
  • Clasificar elementos dentro de grupos
  • Comparar las filas actuales con las filas anteriores/siguientes
  • Analizar tendencias a lo largo de períodos de tiempo

Por ejemplo, aquí tienes algunos ejemplos del mundo real de casos de uso de funciones de ventana:

  • Análisis de ventas
    • Calcular las ventas acumuladas hasta cada año (1995, 1997, 1999)
    • Encontrar los productos más vendidos de cada trimestre
  • Estadísticas deportivas
    • Realiza un seguimiento de los recuentos de medallas olímpicas a lo largo de diferentes años
    • Identifica a los atletas líderes en cada período de competición (2000, 2004, 2008)

ROW_NUMBER() es una de las funciones de ventana más sencillas. Asigna un número secuencial único a cada fila del conjunto de resultados. Así es como se usa:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

Es obligatorio usar la cláusula OVER con ROW_NUMBER(): ROW_NUMBER() OVER ()

Por ejemplo:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

Esto añade una columna row_num que cuenta desde 1 hasta el número total de filas.

Nota: la cláusula OVER puede contener instrucciones de ordenación y partición para controlar cómo funciona la numeración.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • liquids: id, density

Obtén todos los líquidos con una densidad superior a 5.677.

Numera el resultado (usa la función ROW_NUMBER()) y llama a esta columna row_num

Pruébalo tú mismo

-- Numera cada fila del resultado filtrado usando una función de ventana
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL