WINDOWS FUNCTIONS:
Las funciones de ventana (window functions) son un grupo de funciones en SQL que permiten realizar cálculos en conjuntos de datos ordenados. Las funciones de ventana operan en un conjunto de filas denominadas ventana, que se especifica mediante una cláusula OVER.
Las funciones de ventana se utilizan para realizar una variedad de cálculos, incluyendo:
- Cálculos de agregación: SUM(), COUNT(), AVG(), MIN(), MAX()
- Cálculos de ranking: RANK(), DENSE_RANK(), ROW_NUMBER(), NTILE()
- Cálculos de desplazamiento: LAG(), LEAD(), FIRST_VALUE(), LAST_VALUE()
Las funciones de ventana se utilizan comúnmente en análisis de datos para calcular métricas como:
- Media móvil: La media móvil de un conjunto de datos es el promedio de los valores de datos en una ventana.
- Tasa de crecimiento: La tasa de crecimiento de un conjunto de datos es el porcentaje de cambio en el valor de los datos entre dos puntos en el tiempo.
- N principales: Las N principales filas de un conjunto de datos son las filas con los valores más altos o más bajos.
- Percentiles: Los percentiles de un conjunto de datos son los valores que dividen el conjunto de datos en partes iguales.
Ejemplo:
El siguiente ejemplo muestra cómo utilizar la función de ventana AVG() para calcular la media móvil de las ventas de los últimos 3 meses:
SQLSELECT
customer_id,
AVG(sales) OVER (ORDER BY order_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_average_sales
FROM orders;
Esta consulta devuelve una columna adicional llamada moving_average_sales, que contiene la media móvil de las ventas de los últimos 3 meses para cada cliente.
Las funciones de ventana son una herramienta poderosa para realizar análisis de datos en SQL. Pueden utilizarse para realizar una variedad de cálculos, incluyendo cálculos de agregación, ranking y desplazamiento.