PARTITION BY su una colonna
La clausola PARTITION BY ti permette di calcolare "finestre" separate in base alle colonne con cui vuoi suddividere i risultati. Per esempio, puoi creare una singola colonna che calcola la media complessiva dei gol segnati per ogni stagione.
In questo esercizio, creerai un insieme di dati delle partite giocate dal Legia Warszawa (Lega di Varsavia), la squadra più quotata in Polonia, e confronterai le loro prestazioni partita per partita con la media complessiva di quella stagione.
Dove noti più valori anomali? Nelle partite in casa o in trasferta del Legia Warszawa?
Questo esercizio fa parte del corso
Manipolazione dei dati in SQL
Istruzioni dell'esercizio
- Completa le due funzioni finestra che calcolano le medie dei gol in casa e in trasferta. Partiziona le funzioni finestra per season per calcolare medie separate per ciascuna stagione.
- Filtra la query per includere solo le partite giocate dal Legia Warszawa,
id = 8673.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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;