Qu'est-ce qu'il y a avec OVER?
Les fonctions fenêtrées vous permettent de créer un RANK d'informations selon n'importe quelle variable que vous souhaitez utiliser pour trier vos données. Pour ce faire, vous devez préciser la colonne ou le calcul à utiliser pour déterminer le rang. On y arrive en ajoutant une clause ORDER BY à l'intérieur de la clause OVER(). Voici un exemple :
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Dans cet exercice, vous allez créer un jeu de données de matchs classés selon les ligues qui, en moyenne, marquent le plus de buts par match.
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
SELECTle nom de la ligue et la moyenne des buts totaux marqués à partir deleagueetmatch.- Complétez la fonction fenêtrée pour qu'elle calcule le
RANK()de la moyenne des buts marqués pour toutes les ligues de la base de données. - Triez le rang
OVERla moyenne totale des buts à domicile et à l'extérieur.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league over 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 ___;