¿Qué hay OVER aquí?
Las funciones de ventana te permiten crear una RANK
de información según cualquier variable que quieras utilizar para ordenar tus datos. Al configurar esto, tendrás que especificar qué columna o cálculo quieres utilizar para calcular tu clasificación. Esto se hace incluyendo una cláusula ORDER BY
dentro de la cláusula OVER()
. A continuación tienes un ejemplo:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
En este ejercicio crearás un conjunto de datos de partidos clasificados según en qué ligas, de media, se marcan más goles en un partido.
Este ejercicio forma parte del curso
Manipulación de datos en SQL
Instrucciones de ejercicio
- Selecciona el nombre de la liga y los goles totales medios marcados en
league
ymatch
. - Completa la función de ventana para que calcule la clasificación de goles medios marcados en todas las ligas de la base de datos.
- Ordena la clasificación por el total medio de goles marcados en casa y fuera.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league according to the average goals
___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;