PARTITION BY une colonne
La clause PARTITION BY vous permet de calculer des « fenêtres » distinctes selon les colonnes utilisées pour répartir 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 Legia Warszawa (Ligue de Varsovie), l'équipe la mieux classée de Pologne, et comparer leur performance à chaque match à la moyenne globale de cette saison.
Où observe‑t‑on le plus de valeurs aberrantes? Est‑ce lors des matchs à domicile ou à l'extérieur de Legia Warszawa?
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
- Complétez les deux fonctions de fenêtre qui calculent les moyennes de buts à domicile et à l'extérieur. Partitionnez les fonctions de fenêtre par season pour calculer des moyennes distinctes pour chaque saison.
- Filtrez la requête pour n'inclure que les matchs joués par Legia Warszawa,
id = 8673.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;