开始使用免费开始使用

按多列 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;
编辑并运行代码