按多列 PARTITION BY
可以使用 PARTITION BY 子句按照多个数据点(列)来划分窗口平均值。您甚至可以先计算用于对数据进行分区的信息!例如,您可以按赛季和国家计算平均进球数,或者按日历年(来自日期列)计算。
在本练习中,您将计算 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 average goals partitioned by season and month
___(home_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_home,
___(away_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_away
FROM match
WHERE
hometeam_id = ___
OR awayteam_id = ___
ORDER BY (home_goal + away_goal) DESC;