Lecciones del módulo (1/4)
Introducción y la cláusula OVER
Introducción y cláusula OVER
En las lecciones anteriores vimos cómo usar GROUP BY para agregar datos. Sin embargo, GROUP BY tiene una gran limitación: colapsa las filas. Si agrupa por ciudad, obtendrá una sola fila por ciudad y perderá los detalles de los clientes individuales.
Aquí es donde entran en juego las Funciones de ventana. Le permiten ejecutar cálculos agregados (como sumas o promedios) manteniendo las filas originales.
La cláusula OVER()
La palabra clave mágica es OVER(). Le dice a la base de datos que la función agregada (por ejemplo, SUM, AVG, COUNT) debe tratarse como una función de ventana, calculada sobre todo el conjunto de resultados (la "ventana" global), pero aplicada y devuelta en cada fila.
SELECT
order_id,
total_amount,
AVG(total_amount) OVER() AS global_average
FROM orders;En este ejemplo, mantenemos cada pedido individual, pero cada fila también tiene una columna global_average con el promedio de todos los pedidos. ¡Muy útil, por ejemplo, para medir en qué medida se desvía un pedido de la media!
Seleccione la columna 'precio' de la tabla 'productos'. Agregue una columna llamada 'global_max_price' que contenga el precio máximo calculado con una función de ventana en toda la tabla.
Mostrar pista
Utilice MAX(precio) combinado con OVER().
Solución disponible después de 3 intentos
Extraiga 'id', 'precio' y agregue el precio promedio general ('global_avg') de la tabla 'productos'.
Mostrar pista
Simplemente agregue AVG(precio) OVER().
Solución disponible después de 3 intentos