MySQL小知识—窗口函数

一、含义

        在满足某些条件的记录集合上执行的特殊函数,对于每条记录都要在此窗口内执行函数。

        窗口函数的执行顺序(逻辑上)在from,join,where,group by,having之后,在order by,limit,select,distinct之前。

二、与聚合函数的区别

        聚合函数:将多条记录聚合为一条

        窗口函数:每条记录都会执行,有几条记录执行完还是几条

        聚合函数是一个结果,窗口函数是一个排名

三、三个窗口函数的区别

        row_number():名次没有重复的排名(1234)

        dense_rank():连续排名,同名次并列(1223)

        rank():跳跃排名,同名次并列并占位(1224)

四、基础语法

        select xxx

        ,rank() over(partition by xxx order by xxx)

        from xxx

        partition by:分组

        order by:排序

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