Volver a la lista de artículos Artículos
Lectura de 9 minutos

Paquete inicial de funciones de ventana para 2026: aprenda una habilidad avanzada por semana en enero

Las funciones de ventana son una de las habilidades SQL más prácticas que puede aprender si ya conoce los conceptos básicos y desea analizar datos de manera más eficaz. Le ayudan a comparar filas, crear clasificaciones y realizar un seguimiento de los cambios a lo largo del tiempo sin subconsultas complejas. En este paquete inicial, aprenderá una habilidad de función de ventana por semana en enero y convertirá un tema avanzado en una herramienta SQL útil para el día a día.

Las funciones de ventana son uno de esos temas de SQL que a menudo se etiquetan como «avanzados» y luego se posponen discretamente. Sin embargo, en el trabajo analítico real, son una de las formas más rápidas de subir de nivel. Te permiten analizar los datos fila por fila sin perder detalles, evitar subconsultas complejas y escribir SQL que realmente refleje tu forma de pensar sobre los datos.

Enero es un buen momento para abordarlas. Nuevos ciclos de informes, nuevos proyectos y, a menudo, nuevos objetivos de aprendizaje. En lugar de intentar aprenderlo todo de una vez, este paquete inicial se centra en una habilidad práctica por semana. Al cabo de un mes, no solo reconocerás las funciones de ventana, sino que sabrás cómo utilizarlas.

Este artículo muestra cómo estructurar ese mes y cómo utilizar los recursos de LearnSQL.es para que el proceso sea eficiente y realista. Cada recurso de LearnSQL.com tiene una función clara:

  • El curso Funciones de ventana enseña en detalle los conceptos y la sintaxis de las funciones de ventana. Más de 200 ejercicios prácticos garantizan que refuerces cada concepto y obtengas mucha práctica.
  • La hoja de referencia «Funciones de ventana» es una guía descargable que resume la sintaxis, las cláusulas clave y las funciones de ventana más utilizadas. Está disponible en formatos PDF A4, Carta, A3, Ledger y para dispositivos móviles, lo que permite consultarla rápidamente mientras se trabaja con funciones de ventana.

Juntos, forman un ciclo de aprendizaje completo: aprender, practicar, aplicar.

Por qué vale la pena aprender las funciones de ventana en 2026

La mayor parte del trabajo con SQL en el mundo real no tiene que ver con totales. Se trata de comparaciones:

  • ¿Quién vendió más que el mes pasado?
  • ¿Qué producto ocupa el primer puesto en cada categoría?
  • ¿Cómo se compara el valor de hoy con el de la fila anterior?

Las consultas clásicas GROUP BY tienen dificultades con estas preguntas porque eliminan los detalles de las filas individuales. Las funciones de ventana resuelven este problema calculando los valores de las filas relacionadas y manteniendo intactas todas las filas originales.

Imaginemos una GROUP BY consulta con los ingresos diarios por producto.

product total_revenue
A 1,200
B 900

Este resultado es útil, pero fíjese en lo que falta:

  • Individual los días han desaparecido
  • No se puede ver cómo han cambiado los ingresos a lo largo del tiempo
  • No se puede comparar una fila con otra

Ahora veamos el resultado de un cálculo similar utilizando una función de ventana.

date product revenue running_total
2026-01-01 A 300 300
2026-01-02 A 400 700
2026-01-03 A 500 1,200
2026-01-01 B 200 200
2026-01-02 B 300 500
2026-01-03 B 400 900

Aquí se conservan todas las filas originales y se añade una columna analítica adicional. Se puede ver inmediatamente:

  • Cómo se acumulan los totales a lo largo del tiempo
  • Cómo contribuye cada fila al resultado final
  • Los patrones y tendencias que GROUP BY se ocultan

Esta es la ventaja principal de las funciones de ventana. Permiten calcular clasificaciones, totales acumulados y medias móviles sin perder los detalles a nivel de fila.

Si ya conoce los conceptos básicos de SQL: SELECT, WHERE, GROUP BYy JOIN , las funciones de ventana son el siguiente paso más natural para el análisis, la elaboración de informes, las finanzas, el análisis del rendimiento de marketing y el trabajo con datos de productos.

Semana 1: Aprenda la sintaxis básica y el modelo mental

El objetivo de la primera semana es comprender el concepto que hay detrás de las funciones de ventana. Las funciones de ventana parecen intimidantes principalmente porque introducen una nueva sintaxis. Una vez que se comprende la idea de una «ventana», todo lo demás resulta más fácil.

Una función de ventana típica tiene esta estructura:

function_name(column) OVER (...)

El elemento clave es la OVER() . Define la ventana, es decir, el conjunto de filas que la función tiene en cuenta al realizar un cálculo.

Si utiliza SUM(revenue) OVER(), la ventana es todo el conjunto de resultados. La función examina todas las filas a la vez.

date product revenue total_revenue
2026-01-01 A 300 1,200
2026-01-02 A 400 1,200
2026-01-03 B 500 1,200

Todas las filas permanecen en el resultado y el mismo total aparece junto a cada una de ellas. Esto le permite calcular ratios, como la contribución de cada fila a los ingresos totales.

Si utiliza SUM(revenue) OVER (PARTITION BY product), la ventana ya no es toda la tabla. En su lugar, SQL crea una ventana independiente para cada producto.

date product revenue product_total
2026-01-01 A 300 700
2026-01-02 A 400 700
2026-01-03 B 500 500

Aquí, las filas se agrupan de forma lógica, pero no se contraen. Cada fila «ve» solo las filas del mismo producto cuando se realiza el cálculo.

Este es el modelo mental básico de las funciones de ventana. Se define una ventana de filas relacionadas, se aplica un cálculo y se mantienen todas las filas originales en el resultado.

Semana 2: Clasificación y comparación de filas

Una vez que se han aclarado los conceptos básicos, es el momento de ponerse a trabajar para conocer nuevas funciones de ventana. Las funciones de clasificación suelen ser la primera familia de funciones de ventana que se aprende.

Esta semana nos centraremos en ROW_NUMBER(), RANK()y DENSE_RANK(). Estas funciones se utilizan habitualmente para clasificaciones, consultas top-N e identificar duplicados o primeros registros dentro de un grupo.

Imaginemos una tabla llamada sales_summary con los ingresos totales por producto:

product revenue
A 1,000
B 1,000
C 800

Ahora considere la siguiente consulta:

SELECT
  product,
  revenue,
  RANK() OVER (ORDER BY revenue DESC) AS revenue_rank
FROM sales_summary;

En esta consulta, la clasificación se basa en la columna revenue columna. La OVER (ORDER BY revenue DESC) cláusula define la ventana y el orden utilizados solo para el cálculo de la clasificación, no para ordenar el conjunto de resultados final.

product revenue revenue_rank
A 1,000 1
C 800 3
B 1,000 1

Los productos A y B reciben la misma clasificación porque tienen los mismos ingresos. La siguiente clasificación es 3 porque RANK() deja huecos cuando se producen empates. Tenga en cuenta que el orden dentro de OVER() solo se utiliza para determinar cómo se calcula la clasificación, no cómo se muestran los resultados.

Aquí, los productos A y B comparten la misma clasificación porque tienen los mismos ingresos. Se omite la siguiente clasificación, que es exactamente como RANK() . Hay otras funciones de clasificación que tienen un comportamiento diferente: si utilizara DENSE_RANK() , el producto C recibiría la clasificación 2. Si utilizara ROW_NUMBER(), cada fila obtendría un número único, incluso cuando los valores están empatados. La idea clave sigue siendo la misma: la OVER (ORDER BY ...) cláusula define la ventana y el orden en el que se comparan las filas.

Continúa trabajando en el curso Funciones de ventana, concretamente en las partes 4 y 5, donde se explican detalladamente las funciones de clasificación con ejemplos prácticos. Este es también el momento adecuado para empezar a utilizar la hoja de referencia de SQL . La hoja de referencia te ayuda a recordar rápidamente la sintaxis y el comportamiento de las funciones, para que puedas centrarte en comprender cuándo utilizar cada función de clasificación en lugar de memorizar detalles.

Semana 3: Totales acumulados y análisis basados en el tiempo

En la tercera semana, las funciones de ventana empiezan a parecer herramientas analíticas reales. Aquí es donde aprenderá a calcular totales acumulados, sumas acumulativas y medias móviles, patrones que aparecen constantemente en el trabajo con datos reales.

Imagina una tabla con los ingresos diarios:

date revenue
2026-01-01 300
2026-01-02 400
2026-01-03 500

Para calcular un total acumulado, puede utilizar la siguiente función de ventana:

SELECT 
  date, 
  revenue, 
  SUM(revenue) OVER (ORDER BY date) AS running_total 
FROM daily_sales;

Aquí, la ventana se define por ORDER BY date. Para cada fila, la función examina todas las filas hasta la fecha actual y calcula la suma acumulada. Cada fila conserva sus datos originales y el total acumulado muestra cómo se acumulan los valores a lo largo del tiempo. Esto sería difícil y mucho menos legible de lograr con subconsultas.

date revenue running_total
2026-01-01 300 300
2026-01-02 400 700
2026-01-03 500 1,200

Esta semana se trata de comprender cómo funcionan las funciones de agregación, como SUM() y AVG() cuando se utilizan como funciones de ventana, y cómo afecta al resultado el ordenar las filas por fecha o secuencia.

Estos patrones se utilizan ampliamente en la información financiera, el análisis del rendimiento de marketing y las métricas de productos, siempre que los cambios a lo largo del tiempo sean importantes.

Continúa con el curso de Funciones de ventana, centrándote en las partes 6 y 7, donde se explican en detalle el análisis basado en el tiempo y los cálculos acumulativos. Este es también el punto en el que la práctica es más importante.

Semana 4: Combinación de Funciones de ventana en consultas reales

La última semana se trata de poner todo junto. En proyectos reales, las funciones de ventana rara vez se utilizan de forma aislada. Las consultas suelen combinar clasificaciones, cálculos acumulativos y particiones, lo que hace que la claridad y la estructura sean especialmente importantes.

Esta semana, te centrarás en escribir consultas que utilicen múltiples funciones de ventana sin que resulten difíciles de leer o mantener. Aprenderás a combinar funciones de clasificación con totales acumulados, a aplicar diferentes particiones en la misma consulta y a evitar errores comunes, como el orden incorrecto dentro de OVER() o anidamientos innecesarios.

Continuará con el curso Funciones de ventana, completando las partes 8, 9 y 10, donde se tratan patrones más complejos del mundo real. La hoja de referencia «SQL Funciones de ventana» se convertirá en su referencia diaria a la hora de escribir consultas con funciones de ventana en el trabajo.

A quién va dirigido este paquete de inicio

Este plan es ideal si ya conoce los fundamentos de SQL y desea pasar a un trabajo más analítico. Es adecuado para analistas de datos, especialistas en marketing, especialistas en productos y desarrolladores que trabajan con informes o métricas.

Si eres completamente nuevo en SQL, es mejor empezar con los fundamentos de SQL antes de pasar a las funciones de ventana.

Tu plan de enero en una frase

Una habilidad avanzada de SQL, cuatro semanas de concentración y tres recursos probados de LearnSQL.es.

Empieza con el curso «Funciones de ventana», mantén abierta la hoja de referencia mientras aprendes y utiliza el conjunto de ejercicios para asimilarlo todo. A finales de enero, las funciones de ventana ya no te parecerán avanzadas, sino naturales.