Aan de slagGa gratis aan de slag

Subqueries in SELECT voor berekeningen

Subqueries in SELECT zijn een handige manier om berekende kolommen in een query te maken. Een subquery in SELECT kun je behandelen als één numerieke waarde die je in je berekeningen gebruikt. Houd er bij het schrijven van queries in SELECT rekening mee dat het filteren van de hoofdquery de subquery niet filtert — en andersom ook niet.

In de vorige oefening maakte je een kolom om het gemiddelde aantal totale doelpunten per league te vergelijken met het algemene gemiddelde in het seizoen 2013/2014. In deze oefening voeg je een kolom toe die deze waarden direct vergelijkt door het algemene gemiddelde af te trekken van de subquery.

Deze oefening maakt deel uit van de cursus

Gegevens manipuleren in SQL

Cursus bekijken

Oefeninstructies

  • Selecteer in de hoofdquery het gemiddelde aantal doelpunten per wedstrijd voor elke league.
  • Selecteer in de subquery het gemiddelde aantal doelpunten per wedstrijd overall voor het seizoen '2013/2014'.
  • Trek de subquery af van het gemiddelde aantal doelpunten dat voor elke league is berekend.
  • Filter de hoofdquery zodat alleen wedstrijden uit het seizoen '2013/2014' zijn opgenomen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

SELECT
	-- Select the league name and average goals scored
	___ AS league,
	ROUND(___(___ + m.away_goal),2) AS avg_goals,
    -- Subtract the overall average from the league average
	ROUND(AVG(___ + m.away_goal) ___ 
		(SELECT ___(___ + away_goal)
		 FROM match 
         WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;
Code bewerken en uitvoeren