Saltar al contenido principal
eLearner.app
Módulo 13 · Lección 1 de 449/57 en el curso~15 min
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.

SQL
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!

Ejercicio#sql.m13.l1.e1
Intentos: 0Cargando...

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.

Cargando editor...
Mostrar pista

Utilice MAX(precio) combinado con OVER().

Solución disponible después de 3 intentos

Ejercicio#sql.m13.l1.e2
Intentos: 0Cargando...

Extraiga 'id', 'precio' y agregue el precio promedio general ('global_avg') de la tabla 'productos'.

Cargando editor...
Mostrar pista

Simplemente agregue AVG(precio) OVER().

Solución disponible después de 3 intentos