CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Sélectionnez l’ID du match, le nom du pays, la saison, les buts à domicile et à l’extérieur dans les tables match et country.
  • 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;
Modifier et exécuter le code