Matchen är OVER
Klausulen OVER() låter dig tillämpa en aggregatfunktion över en hel datamängd, på liknande sätt som subquery i SELECT. OVER() har tydliga fördelar jämfört med subquery i SELECT – dina frågor körs snabbare, och klausulen erbjuder en rad ytterligare funktioner och alternativ som vi går igenom längre fram i det här kapitlet.
I den här övningen ska du skriva om några frågor från tidigare kapitel med hjälp av OVER().
Den här övningen är en del av kursen
Datahantering i SQL
Övningsinstruktioner
- Välj match-
ID, land (name),season,home_goalochaway_goalfrån tabellernamatchochcountry. - Komplettera frågan så att den beräknar det genomsnittliga antalet mål totalt och sedan inkluderar det aggregerade värdet i varje rad med hjälp av en fönsterfunktion.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
SELECT
-- Select the match id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;