Vad händer här med OVER?
Med fönsterfunktioner kan du rangordna data med hjälp av valfri variabel. För att sätta upp detta behöver du ange vilken kolumn eller beräkning som ska ligga till grund för rangordningen. Det gör du genom att inkludera en ORDER BY-sats inuti OVER()-satsen. Här är ett exempel:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
I den här övningen skapar du ett dataset med rangordnade matcher baserat på vilka ligor som i genomsnitt gör flest mål per match.
Den här övningen är en del av kursen
Datahantering i SQL
Övningsinstruktioner
SELECTliganamnet och genomsnittet av totala mål frånleagueochmatch.- Fyll i fönsterfunktionen så att den beräknar
RANK()för genomsnittliga mål per liga i databasen. - Rangordna med
OVERdet genomsnittliga totala antalet hem- och bortamål.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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 ___;