bowan.

2020-06-04   阅读量: 1489

大数据 数据分析师 Mysql

理解总结了一下mysql的开窗函数

扫码加入数据分析学习群

MYSQL 开窗函数

1.作用:对每一行都显示函数结果,并且可以调节计算的行数范围

开窗函数和普通聚合函数的区别:

(1)聚合函数是将多条记录聚合为一条;而开窗函数是每条记录都会执行,有几条记录执行完还是几

条。

(2)聚合函数也可以用于开窗函数中。

2.基本语法:(相当于5个参数,函数,over() 这两个必须写,后面三个在over()里,看情况添加)

select xx,开窗函数 over( [pratition by .....]

[order by......]

[开创范围...])from biao1......;

3.语法中基本概念:

(1)开窗函数:a.可以是普通聚合函数,b.也可以是特有的开窗函数

常用的如:序号函数:row_number:连续的序号(不管有没有重复,1.2.3.4.5.6)

dense_rank():连续不间断的序号(重复的会给相同的序号,1.2.3.3.3.4.5)

rank():连续间断的序号(重复给相同序号,后面会跳过重复的序号,1.2.3.3.3.6.7)

(2)over()必须有,里面不加参数表示对原表所有行计算,并返回在所有行上面

(3)partition by...,order by....,范围...这三个参数都可有可无

(4)partition by 类似于分组group by

(5)order by 还是排序

(6)开创范围:一些表示行的写法:current row 边界是当前行,一般和其他范围关键字一起使用

unbounded preceding 边界是分区中的第一行

unbounded following 边界是分区中的最后一行

expr preceding 边界是当前行减去expr的值

expr following 边界是当前行加上expr的值

书写格式:row unbounded preceding 从第一行到当前行

row between 1 preceding and 20 following 从当前行前一行到后20行

........................空的不写,就是所有行,第一行到最后一行

14.7974 5 2 关注作者 收藏

评论(0)


暂无数据

推荐课程