开始使用免费开始使用

包含嵌套子查询的 CTE

如果您在 FROM 子句中罗列多个嵌套语句的子查询,查询就很可能会变得冗长、复杂且难以阅读。

由于很多查询是为了保存并在未来重复运行而编写的,良好的组织对顺畅的工作流至关重要。将子查询整理为 CTE,从长远看能为您节省时间、空间,并减少困惑!

本练习是课程的一部分

SQL 中的数据处理

查看课程

练习说明

  • 声明一个 CTE,用于计算 '2013/2014' 赛季 8 月 比赛的进球数。
  • 在内部子查询上进行筛选,仅选择 '2013/2014' 赛季 8 月 的比赛。
  • 使用来自 match_list CTE 的 country_id,将该 CTE 与 league 表进行 LEFT JOIN

交互式实操练习

通过完成这段示例代码来试试这个练习。

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id,
  	   (home_goal + away_goal) AS goals
    FROM match
  	-- Create a list of match IDs to filter data in the CTE
    WHERE id IN (
       SELECT ___
       FROM ___
       WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT 
	___,
    ___(___)
FROM league AS l
-- Join the CTE onto the league table using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;
编辑并运行代码