CommencerCommencer gratuitement

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

Afficher le cours

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