CommencezCommencez gratuitement

Qu'est-ce qu'il y a avec OVER?

Les fonctions fenêtrées vous permettent de créer un RANK d'informations selon n'importe quelle variable que vous souhaitez utiliser pour trier vos données. Pour ce faire, vous devez préciser la colonne ou le calcul à utiliser pour déterminer le rang. On y arrive en ajoutant une clause ORDER BY à l'intérieur de la clause OVER(). Voici un exemple :

SELECT 
    id,
    RANK() OVER(ORDER BY home_goal) AS rank
FROM match;

Dans cet exercice, vous allez créer un jeu de données de matchs classés selon les ligues qui, en moyenne, marquent le plus de buts par match.

Cette activité fait partie du cours

Manipulation de données en SQL

Voir le cours

Instructions de l’exercice

  • SELECT le nom de la ligue et la moyenne des buts totaux marqués à partir de league et match.
  • Complétez la fonction fenêtrée pour qu'elle calcule le RANK() de la moyenne des buts marqués pour toutes les ligues de la base de données.
  • Triez le rang OVER la moyenne totale des buts à domicile et à l'extérieur.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

SELECT 
	-- Select the league name and average goals scored
	___ AS league,
    ___(___ + ___.away_goal) AS avg_goals,
    -- Rank each league over the average goals
    ___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m 
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;
Modifier et exécuter le code