在 SELECT 中用子查询做计算
在 SELECT 中使用子查询,可以在查询里创建计算列。SELECT 子查询可被视为一个可用于计算的数值。撰写包含 SELECT 子查询的语句时要注意:主查询的筛选条件不会作用于子查询,反之亦然。
在上一个练习中,您创建了一个列,用于比较各联赛在 2013/2014 赛季的场均总进球与全局场均进球。本练习中,您将新增一列,直接通过用各联赛场均进球减去子查询得到的全局平均值来比较这两个数值。
本练习是课程的一部分
SQL 中的数据处理
练习说明
- 在主查询中选取每个联赛的一场比赛的平均进球数。
- 在子查询中选取
'2013/2014'赛季整体的一场比赛平均进球数。 - 将子查询的结果从各联赛计算得到的平均进球数中相减。
- 筛选主查询,仅包含
'2013/2014'赛季的比赛。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
-- Select the league name and average goals scored
___ AS league,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Subtract the overall average from the league average
ROUND(AVG(___ + m.away_goal) ___
(SELECT ___(___ + away_goal)
FROM match
WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;