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.
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 celulares2Condiciones
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
Agregación integrada, parte 1Agregación integrada, parte 2Agrupación, parte 1Agrupación, parte 2Subconsultas, parte 1Subconsultas, parte 2Repaso: tienda de ganancias totalesRepaso: tienda de scootersRepaso: cafetería11Funciones de ventana, parte 1
Función ROW_NUMBERCriterio ORDER BYCriterio PARTITION BYPARTITION y ORDERFunciones LEAD y LAGRepaso: LEAD y LAGRepaso: imágenesRepaso: cuadros3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL