IniziaInizia gratis

Cosa c'è di OVER qui?

Le window function ti permettono di creare un RANK delle informazioni in base a qualsiasi variabile tu voglia usare per ordinare i dati. Per impostarlo, devi specificare quale colonna/calcolo usare per determinare il tuo rank. Questo si fa includendo una clausola ORDER BY all'interno della clausola OVER(). Ecco un esempio:

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

In questo esercizio creerai un insieme di dati con le partite classificate (ranked) in base alle leghe che, in media, segnano più gol in una partita.

Questo esercizio fa parte del corso

Manipolazione dei dati in SQL

Visualizza il corso

Istruzioni dell'esercizio

  • SELECT il nome della lega e la media dei gol totali segnati da league e match.
  • Completa la window function in modo che calcoli il RANK() della media dei gol segnati in tutte le leghe del database.
  • Ordina il rank con OVER in base alla media dei gol segnati in casa e in trasferta.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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 ___;
Modifica ed esegui il codice