Funciones de ventana
Realiza cálculos sobre particiones de datos sin colapsar filas: ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD, FIRST_VALUE, LAST_VALUE, NTH_VALUE, CUME_DIST y PERCENT_RANK.
Las funciones de ventana (window functions) son una de las características más potentes incorporadas en MySQL 8.0 y representan un salto cualitativo en las capacidades analíticas de SQL. A diferencia de las funciones de agregación que colapsan un grupo de filas en una sola, las funciones de ventana realizan cálculos sobre un conjunto de filas relacionadas pero mantienen cada fila individual en el resultado, lo que abre posibilidades analíticas que antes requerían consultas muy complejas o procesamiento en la aplicación.
Esta sección cubre todas las funciones de ventana disponibles en MySQL 8.0: las funciones de numeración (ROW_NUMBER para asignar números secuenciales únicos, RANK para rankings con saltos ante empates, DENSE_RANK para rankings sin saltos, y NTILE para dividir filas en grupos iguales), las funciones de desplazamiento temporal (LAG para acceder al valor de la fila anterior y LEAD para acceder al de la siguiente, extremadamente útiles para calcular diferencias respecto al período anterior), las funciones de valores de marco (FIRST_VALUE, LAST_VALUE y NTH_VALUE para acceder a valores en posiciones específicas dentro de la partición), y las funciones de distribución estadística (CUME_DIST y PERCENT_RANK para calcular la posición relativa de cada fila en su distribución).
Las funciones de ventana son fundamentales en análisis de datos avanzados con MySQL: rankings de ventas por región, variación respecto al período anterior, percentiles de rendimiento, medias móviles y muchos otros cálculos analíticos que antes eran difíciles o imposibles de expresar en SQL estándar.
