MYSQL 开窗函数

 一、开窗函数

          1.什么是窗口函数: 窗口 + 函数
                                        窗口: 函数运行时计算的数据集的范围
                                        函数:运行时的函数:
                                               1.常用的聚合函数
                                               2.窗口内置的函数

           2. 语法结构:
                         函数 over([partition by xxx,...] [order by xxx,...]
                         over: 以谁进行开窗 =》 table
                         partition by:以谁进行分组(类似group by ) =》 字段
                         order by:以谁进行排序 =》字段

二、开窗 -内置函数

       1.         NTILE(N)理论解析:
                      把数据平均分配到N中,如果不能平均分配,优先分配到较小的编号中。

                   RANK理论解析:
                      从1开始,按照顺序,生成组内记录的编号,排序相同会重复,在名次中留下空位
                   ROW_NUMBER理论解析:
                      从1开始,按照顺序,生成组内记录的编号,序号没有重复的
                   DENSE_RANK理论解析:
                      从1开始,按照顺序,生成组内记录的编号,排序相同会重复,在名次中不留下空位

       2.            行段问题

                        lag   向上取第几行
                        lead    向下取第几行
                        语法格式:lag(input[, offset[, default]])
                        input =》 col 
                        offset =》 取第几行
                        default=》 取不到时 给一个默认值

       3.             取值问题
                        FIRST_VALUE(col):取分组后 截止到当前行 第一个值
                        LAST_VALUE(col):取分组后 截止到当前行 最后一个值

你可能感兴趣的:(mysql,mysql)