PARTITION BY după o coloană
Clauza PARTITION BY îți permite să calculezi „ferestre" separate pe baza coloanelor după care vrei să îți împarți rezultatele. De exemplu, poți crea o singură coloană care calculează media generală a golurilor marcate pentru fiecare sezon.
În acest exercițiu, vei construi un set de date cu meciurile jucate de Legia Warszawa (Liga Varșovia), echipa clasată pe primul loc în Polonia, și vei compara performanța lor în meciurile individuale cu media generală a sezonului respectiv.
Unde observi mai multe valori extreme? Sunt acestea meciurile de acasă sau cele în deplasare ale lui Legia Warszawa?
Acest exercițiu face parte din cursul
Manipularea datelor în SQL
Instrucțiuni pentru exercițiu
- Completează cele două funcții de fereastră care calculează mediile golurilor marcate acasă și în deplasare. Împarte funcțiile de fereastră după sezon pentru a calcula medii separate pentru fiecare sezon.
- Filtrează interogarea pentru a include doar meciurile jucate de Legia Warszawa,
id = 8673.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;