Press "Enter" to skip to content

理解SQL:开始使用窗口函数

通过使用SQL窗口函数,从聚合中获得更多

Photo by Components AI on Unsplash

介绍

当涉及到在SQL中聚合数据时,窗口函数提供了比与GROUP BY子句一起使用的聚合更大的灵活性。虽然这两种方法的确具有类似的功能,但窗口函数的输出结构与众不同。具体而言,窗口函数在一组相关行上应用操作,其中关系由表行的某个分组或分区确定。与将非窗口对应函数将行折叠成单个输出行的方式不同,所有行保留其独立的身份并存在于输出表中。

这种行为与通常的聚合完全不同,可以极大地扩展您的分析工具箱,超越简单的汇总统计。例如,窗口函数允许我们计算累积总和、移动平均值,甚至统计度量如Z分数。

在本文中,我们将介绍SQL窗口函数的结构和基本功能。这里的重点是相对基础的,所以如果您还没有接触过窗口函数,或者对使用它们的经验有限,希望本文对您有所帮助。

在本文中,我们将使用有关1930年至2022年FIFA世界杯比赛的一些高级摘要数据。排名和统计数据来源于维基百科,并在知识共享署名-相同方式共享许可下提供(CC-BY-SA)。数据和相关信息可以在此处找到。为了本博客的目的,我将表格导入到了我的自己的PostgresSQL数据库中,但如果您想跟随操作,可以从我的Git存储库中获取该表的副本。在我的数据库中,这个表被称为world_cup_placings,下面是一个输出示例:

|year|start_date|end_date|host_country |first_place |second_place  |third_place  |fourth_place|total_teams|matches_played|total_goals|total_attendance||----|----------|--------|-------------|------------|--------------|-------------|------------|-----------|--------------|-----------|----------------||1930|13/07/30  |30/07/30|Uruguay      |Uruguay     |Argentina     |United…
Leave a Reply

Your email address will not be published. Required fields are marked *