Le match est terminé (OVER)
La clause OVER()
vous permet d'appliquer une fonction d'agrégation à un ensemble de données, à l'instar des sous-requêtes dans SELECT
. La clause OVER()
offre des avantages significatifs par rapport aux sous-requêtes de SELECT
- notamment, vos requêtes s'exécuteront plus rapidement, et la clause OVER()
dispose d'un large éventail de fonctions et de clauses supplémentaires que vous pouvez inclure avec elle et que nous aborderons plus loin dans ce chapitre.
Dans cet exercice, vous allez réviser quelques requêtes des chapitres précédents en utilisant la clause OVER()
.
Cet exercice fait partie du cours
Manipulation de données en SQL
Instructions
- Sélectionnez l’ID du match, le nom du pays, la saison, les buts à domicile et à l’extérieur dans les tables
match
etcountry
. - Finalisez la requête qui calcule la moyenne globale de buts marqués, puis inclut ensuite cette valeur agrégée dans chaque ligne à l’aide d’une fonction de fenêtre.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
SELECT
-- Select the id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;