数据库管理和应用
MySQL窗口函数
常用参数整理

01
基本概念
02
举例说明
单看这介绍会有些不容易理解,下面拿一个例子来对比理解一下。
有一组数据表business,字段分别为姓名name,订单日期orderdate,金额cost,我们现在通过不同的窗口来将cost按照日期进行累加,SQL语句如下:
Select name,orderdate,cost,
Sum(cost) over() as sample1,——所有行相加
Sum(cost) over(partition by name) as sample2,——按name分组,组内数据相加
Sum(cost) over(partition by name order by orderdate) as sample3,——按name分组,组内数据逐行累加
Sum(cost) over(partition by name order by orderdate rows between UNBOUNDED PRECEDING and current row) as sample4,——和sample3一样,由起点到当前行的聚合
Sum(cost) over(partition by name order by orderdate rows between 1 PRECEDING and current row) as sample5,——当前行和前面一行做聚合
Sum(cost) over(partition by name order by orderdate rows between 1 PRECEDING and 1 FOLLOWING) as sample6,——当前行和前面一行及后面一行聚合
Sum(cost) over(partition by name order by orderdate rows between current row and UNBOUNDED FOLLOWING) as sample7 ——当前行及后面所有行做聚合
from business;
sql语句放在这里,小伙伴们自己动手尝试,看看是什么结果。
03
应用场景
数据排名与排序
在考试成绩统计中,使用窗口函数可以方便地对每个班级的学生成绩进行排名,了解每个学生在班级中的成绩位置。
分组统计与分析
在销售数据统计中,按地区对销售额进行分组,使用窗口函数可以计算每个地区的累计销售额、平均销售额等,方便分析不同地区的销售情况。
数据对比与趋势分析
在股票交易数据中,使用窗口函数可以比较当前股价与过去一段时间内的股价,分析股价的变化趋势,例如计算移动平均线等。
窗口函数为 SQL 数据处理提供了更灵活、更强大的功能,能够帮助用户更高效地进行数据分析和处理,在数据仓库、报表生成、数据分析等领域都有广泛的应用。
数据分析相关内容,入门内容可点击【数据分析入门】进行查看,进阶内容可点击【数据分析进阶】,后续将会对数据分析中涉及到的内容做系列介绍,如对内容感兴趣,可关注公众号及时接收更新内容。

FOLLOW US
关注我们
问题咨询请扫码
文中部分图片源自网络,如有侵权,请联系删除





