楼主: 我是小趴菜
477 0

[数据挖掘工具] 理解总结了一下mysql的开窗函数 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2022-10-13 10:44:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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行

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


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MySQL sql UNBOUNDED following partition

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 12:01