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 (window functions) realizan cálculos a través de un conjunto de filas de una tabla relacionadas con la fila actual. A diferencia de las funciones de agregación habituales, 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 o posteriores
  • Analizar tendencias a lo largo de períodos de tiempo

Por ejemplo, aquí hay algunos ejemplos del mundo real para el caso de uso de funciones window:

  • Análisis de sales
    • Calcular las sales acumuladas hasta each año (1995, 1997, 1999)
    • Encontrar los productos más vendidos para each trimestre
  • Estadísticas Deportivas
    • Rastrear el recuento de medallas olímpicas a lo largo de diferentes años
    • Identificar 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. 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 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 una densidad mayor a 5.677.

Enumera 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