CommencezCommencez gratuitement

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

Voir le cours

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;
Modifier et exécuter le code