先用 UNION 再 JOIN 的查询
您的目标是创建与之前相同的报告,包含以下字段:
- season,输出
summer或winter - country
- events,显示去重后的赛事数量
在本练习中,请采用先 UNION、后 JOIN 的方式来编写查询。使用这种方法时,您需要将初始的 UNION 查询作为一个子查询。该子查询必须包含所有相关字段,包括用于连接的字段。
一如既往,您可以参考 E:R 图。
本练习是课程的一部分
SQL 报表制作
练习说明
- 在子查询中,通过将夏季和冬季的比赛用
UNION ALL合并,构造输出season、country_id和event的查询。 - 使用
JOIN和另一个SELECT语句,显示字段season、country和去重后的events。 - 对所有未聚合的字段使用
GROUP BY。 - 按
events降序排序报告。
交互式实操练习
通过完成这段示例代码来试试这个练习。
-- Add outer layer to pull season, country and unique events
SELECT
____,
____,
____ AS events
FROM
-- Pull season, country_id, and event for both seasons
(SELECT
____ AS season,
____,
____
FROM ____
____
SELECT
____ AS season,
____,
____
FROM ____) AS subquery
JOIN ____ AS c
ON ____
-- Group by any unaggregated fields
GROUP BY ____
-- Order to show most events at the top
ORDER BY ____;