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 una tabla relacionadas con la fila actual. A diferencia de las funciones de agregación habituales, 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 o siguientes
- Analizar tendencias a lo largo de períodos de tiempo
Por ejemplo, aquí hay algunos ejemplos del mundo real de casos de uso de las funciones de ventana:
- Análisis de ventas
- Calcula las ventas acumuladas hasta cada año (1995, 1997, 1999)
- Encuentra los productos más vendidos de cada trimestre
- Estadísticas deportivas
- Haz un seguimiento del recuento de medallas olímpicas a lo largo de distintos años
- Identifica a los atletas destacados 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í 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.
Desafío
FácilTablas 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 > ____Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de teléfonos móviles2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()8Estadística
Agregados integrados, parte 1Agregados integrados, parte 2Agrupación, parte 1Agrupación, parte 2Subconsultas, parte 1Subconsultas, parte 2Repaso: tienda Total GainRepaso: tienda de scootersRepaso: tienda de café11Funciones de ventana, parte 1
Función ROW_NUMBERCriterio ORDER BYCriterio PARTITION BYPARTITION y ORDERFunciones LEAD y LAGRepaso: LEAD y LAGRepaso: imágenesRepaso: cajas3Formato de retorno específico
Valores nulosOrdenar resultados Parte 1Ordenar resultados Parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Retos introductorios
Repaso - Elecciones parlamentariasRepaso - Detención policial de un criminalRepaso - Envase de bebidas de barRepaso - Diseñar nuevas columnas9Varias tablas
JOIN básico, parte 1JOIN básico, parte 2Repaso: JOINAuto JOINRepaso: auto JOINUNIONSimplificar consultas: palabra clave WITHRepaso: consultas con WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterios ROWS y RANGEPractica por tu cuenta: Playground de SQL