Data Manipulation in SQL
Mona Khalil
Data Scientist, Greenhouse Software
AVG
for each teamAVG
valuesSELECT
t.team_long_name AS team,
AVG(m.home_goal) AS home_avg
FROM match AS m
LEFT JOIN team AS t
ON m.hometeam_id = t.team_api_id
WHERE season = '2011/2012'
GROUP BY team;
| team | home_avg |
|----------------------|------------------|
| 1. FC Köln | 1.13725490196078 |
| 1. FC Nürnberg | 1.27058823529412 |
| 1. FSV Mainz 05 | 1.43697478991597 |
| AC Ajaccio | 1.12280701754386 |
FROM (SELECT
t.team_long_name AS team,
AVG(m.home_goal) AS home_avg
FROM match AS m
LEFT JOIN team AS t
ON m.hometeam_id = t.team_api_id
WHERE season = '2011/2012'
GROUP BY team)
FROM (SELECT
t.team_long_name AS team,
AVG(m.home_goal) AS home_avg
FROM match AS m
LEFT JOIN team AS t
ON m.hometeam_id = t.team_api_id
WHERE season = '2011/2012'
GROUP BY team) AS subquery
SELECT team, home_avg
FROM (SELECT
t.team_long_name AS team,
AVG(m.home_goal) AS home_avg
FROM match AS m
LEFT JOIN team AS t
ON m.hometeam_id = t.team_api_id
WHERE season = '2011/2012'
GROUP BY team) AS subquery
SELECT team, home_avg
FROM (SELECT
t.team_long_name AS team,
AVG(m.home_goal) AS home_avg
FROM match AS m
LEFT JOIN team AS t
ON m.hometeam_id = t.team_api_id
WHERE season = '2011/2012'
GROUP BY team) AS subquery
ORDER BY home_avg DESC
LIMIT 3;
| team | home_avg |
|----------------|----------|
| FC Barcelona | 3.8421 |
| Real Madrid CF | 3.6842 |
| PSV | 3.3529 |
You can create multiple subqueries in one FROM
statement
You can join a subquery to a table in FROM
Data Manipulation in SQL