使用标量子查询进行过滤
子查询在处理复杂的过滤和转换时非常强大。借助子查询,您可以基于单个(标量)值来过滤数据,这是仅用 WHERE 子句或连接无法实现的。子查询也可用于对数据集进行更高级的处理。在任何使用关系型数据库的真实业务场景中,您都很可能会遇到子查询。
在本练习中,您将生成一份比赛清单:这些比赛的总进球数(两队进球相加)超过 matches_2013_2014 表中比赛平均进球数的「3 倍」。该表包含 2013/2014 赛季进行的所有比赛。
本练习是课程的一部分
SQL 中的数据处理
练习说明
- 在子查询中计算所有比赛的平均「主队进球 + 客队进球」的 3 倍。
- 在主查询中过滤出总进球数(主队 + 客队进球)大于该子查询值的比赛。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
date,
home_goal,
away_goal
FROM matches_2013_2014
-- Filter for matches where total goals is greater than 3x the average
WHERE (___ + ___) ___
(SELECT ___ * AVG(___ + ___)
FROM ___);