按列进行 PARTITION BY
PARTITION BY 子句可让您基于想要划分结果的列来计算相互独立的"窗口"。例如,您可以创建一个列,按赛季计算每个赛季的总体场均进球数。
在本练习中,您将创建一份 Legia Warszawa(华沙军团,波兰排名最高的球队)的比赛数据集,并将其单场比赛表现与该赛季的总体平均值进行比较。
您觉得离群值更多地出现在何处?是 Legia Warszawa 的主场还是客场比赛?
本练习是课程的一部分
SQL 中的数据处理
练习说明
- 完成两个用于计算主场与客场进球"平均值"的窗口函数。将窗口函数按"赛季"进行分区,以分别计算每个赛季的平均值。
- 将查询"筛选"为只包含 Legia Warszawa 参与的比赛,
id = 8673。
交互式实操练习
通过完成这段示例代码来试试这个练习。
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;