MySQL 8.0 新增窗口函数,与oracle 窗口函数类似,属于mysql的一大特点
1.ROW_NUMBER () OVER ()生成新序列,按照c2排序,生成新序列
MySQL 8.0 窗口函数_第1张图片
按照c1分组,c2排序生成序列
MySQL 8.0 窗口函数_第2张图片
2.cume_dist() OVER ()在某种排序条件下,小于等于当前行值的行数/总行数
按照c1分组,c2排序,求当前行值的行数/总行数
MySQL 8.0 窗口函数_第3张图片
3.rank() OVER ()类似于row_number() 生成新排序
按照c1分组,c2排序,生成新序列,当两个排序值相同时rank值相同
MySQL 8.0 窗口函数_第4张图片
4.PERCENT_RANK() OVER ()当前RANK值-1/总行数-1
MySQL 8.0 窗口函数_第5张图片
5.DENSE_RANK() OVER ()为了解决rank()编号存在的问题的,比如rank值出现两个1,会跳过2,而DENSE_RANK不会
MySQL 8.0 窗口函数_第6张图片
6.FIRST_VALUE() OVER ()按照某种方式排序,求第一个值
MySQL 8.0 窗口函数_第7张图片
7.LAST_VALUE() OVER ()按照某种分组排序求最后一个值
MySQL 8.0 窗口函数_第8张图片
8.NTH_VALUE() OVER ()按某种方式排序求某一行的值
MySQL 8.0 窗口函数_第9张图片
9.LAG(id) OVER ()按某种方式排序求上一行的值
MySQL 8.0 窗口函数_第10张图片
10.lead () OVER ()按某种方式排序求下一行的值
MySQL 8.0 窗口函数_第11张图片
11.将数据按照某些排序分成N组
MySQL 8.0 窗口函数_第12张图片
12.CTE 公用表达式,非递归的CTE,查询最新重复注册的用户
MySQL 8.0 窗口函数_第13张图片
13.CTE 公用表达式,递归的CTE,
MySQL 8.0 窗口函数_第14张图片