Qui a dit que c’est terminé avec OVER ?
Les fonctions de fenêtre vous permettent de créer une instruction RANK
d’informations en fonction de n’importe quelle variable que vous souhaitez utiliser pour trier vos données. Lors de la configuration, vous devrez spécifier la colonne/le calcul que vous souhaitez utiliser pour calculer votre classement. Pour ce faire, vous devez inclure une clause ORDER BY
dans la clause OVER()
. Vous trouverez ci-dessous un exemple :
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Dans cet exercice, vous allez créer un ensemble de données classant les matchs selon les championnats qui enregistrent, en moyenne, le plus grand nombre de buts par match.
Cet exercice fait partie du cours
Manipulation de données en SQL
Instructions
- Sélectionnez le nom du championnat et la moyenne totale des buts marqués à partir de
league
etmatch
. - Complétez la fonction de fenêtre pour classer les moyennes de buts marqués dans tous les championnats de la base de données.
- Ordonnez le classement en fonction de la moyenne totale des buts marqués à domicile et à l’extérieur.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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 ___;