到处都是 ALL 子查询
在足球联赛中,比赛会经历不同的「阶段」。获胜的球队会从一个阶段晋级到下一个阶段,直到进入最终阶段。每个阶段的比重都会比前一个更高。match 表包含了每场比赛所在阶段的数据。
在本课中,您将通过 3 个练习构建一个最终查询,其中包含 3 个子查询——分别位于 SELECT 子句、FROM 子句和 WHERE 子句。在最后一个练习中,您的查询将提取数据,分析每个阶段的平均进球数。随着阶段的提升、比赛的重要性增加,平均进球数是否会发生变化?
本练习是课程的一部分
SQL 中的数据处理
练习说明
- 在
SELECT子查询中提取总进球数的平均值。 - 在主查询中计算特定
stage的总进球数「平均值」。 - 将两个子查询与主查询统一「筛选」为仅包含 2012/2013 赛季的数据。
- 按
m.stage列对查询进行GROUP分组。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;