在 FROM 中扩展子查询
在上一个练习中,您发现 England、Netherlands、Germany 和 Spain 是数据库中唯一出现过总进球数达到 10 球或以上比赛的国家。现在让我们进一步查看这些比赛的细节——比赛时间、赛季,以及主队与客队各自的进球数。
您会注意到,在本练习中,主查询所选择的每一列都没有使用表别名。这是因为主查询是从子查询中取数,而子查询被视为"一张表"。
本练习是课程的一部分
SQL 中的数据处理
练习说明
- 完成
FROM子句中的子查询。从country表中选择国家name,并从match表中选择date、home_goal、away_goal和total_goals列。 - 在子查询中创建一列,将主客队进球相加,命名为
total_goals。这将用于筛选主查询。 - 在主查询中选择
country、date、home_goal和away_goal。 - 筛选主查询,使总进球数为10 或以上的比赛保留下来。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
-- Select country, date, home, and away goals from the subquery
___,
date,
___,
away_goal
FROM
-- Select country name, date, home_goal, away_goal, and total goals in the subquery
(SELECT ___ AS country,
m.date,
___,
m.away_goal,
(___ + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN country AS c
ON m.country_id = c.id) AS subq
-- Filter by total goals scored in the main query
WHERE total_goals ___ ___;