开始使用免费开始使用

到处都是子查询

在足球联赛中,比赛会在不同的阶段进行。获胜的球队会从一个阶段晋级到下一个阶段,直到进入决赛。每个阶段的 stakes(重要性/压力)都会比前一个更高。match 表包含每场比赛所处不同阶段的数据。

接下来的 3 个练习中,您将构建一个查询,并分别在 SELECT、FROM 和 WHERE 子句中加入子查询。随着阶段提升,场均进球数会发生变化吗?

该查询重复使用了同一个子查询,以便您练习不同的位置。每一处副本都会再次读取 match 表,因此在您的实际工作中,您通常只计算一次全局平均值,第 4 章将通过窗口函数演示这一点。

本练习是课程的一部分

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 ___;
编辑并运行代码