Segmentez par une colonne avec PARTITION BY
La clause PARTITION BY
vous permet de calculer des fenêtres distinctes en fonction des colonnes selon lesquelles vous souhaitez diviser vos résultats. Par exemple, vous pouvez créer une seule colonne qui calcule la moyenne globale des buts marqués pour chaque saison.
Dans cet exercice, vous allez créer un ensemble de données de matchs joués par le Legia Varsovie, l’équipe la mieux classée de Pologne, et comparer ses performances à la moyenne générale de la saison.
Où voyez-vous le plus de valeurs aberrantes ? S’agit-il de matchs à domicile ou à l’extérieur du Legia Varsovie ?
Cet exercice fait partie du cours
Manipulation de données en SQL
Instructions
- Complétez les deux fonctions de fenêtre qui calculent les moyennes de buts à domicile et à l’extérieur. Segmentez les fonctions de fenêtre par saison afin de calculer des moyennes distinctes pour chaque saison.
- Filtrez la requête pour n’inclure que les matchs joués par le Legia Varsovie,
id = 8673
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate the average goals scored partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;