CDA数据分析师

CDA数据分析师

考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

窗口函数中三种序号函数怎么区分?

2023-06-08

MySQL从8.0版本开始支持窗口函数。窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将分组的结果置于每一条数据记录中。


窗口函数可以分为静态窗口函数和动态窗口函数:


静态窗口函数的窗口大小是固定的, 不会因为记录的不同而不同;动态窗口函数的窗口大小会随着记录的不同而变化;


窗口函数总体上可以分为序号函数, 分布函数, 前后函数, 首尾函数和其他函数;


在数据分析中,经常要进行排序,排名的操作,mysql 8.0中新增的窗口函数提供了专门用于此需求的窗口函数:


row_number()、rank()、dense_rank()。很多初学者不太容易区分。以下提供一个易记的思路:


(1)row_number( )从字面意思理解,为行号,所以排出来是从1到N的等差数列。


(2)rank( )根据开窗函数中order by的排序要求(升序或降序),对结果进行排序,如果有并列排名,则后面会跳档下一名次。


(3)dense_rank( )根据开窗函数中order by的排序要求(升序或降序),对结果进行排序,无论是否有并列排名,后面都会继续排名,名次不会跳档。


完 谢谢观看