Menu
Coddy logo textTech

ROW_NUMBER function

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

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

Son particularmente útiles cuando necesitas:

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

Por ejemplo, aquí hay algunos ejemplos del mundo real para 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 para cada trimestre
  • Estadísticas Deportivas
    • Rastrea los conteos de medallas olímpicas a lo largo de diferentes años
    • Identifica a los atletas líderes en cada período de competencia (2000, 2004, 2008)

ROW_NUMBER() es una de las funciones de ventana más simples. Asigna un número secuencial único a cada fila en el conjunto de resultados. Aquí cómo usarla:

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 agrega 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 particionamiento para controlar cómo funciona la numeración.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>liquids</strong>: <strong>id</strong>, <strong>density</strong>

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

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

Pruébalo tú mismo

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