当我们需要按照各科成绩排序,并显示排名时,会用到窗口函数。

row_number:没有重复值的排序[记录相等也是不重复的]可以进行分页使用。
这个函数可以排出来个1234,但是有时候结果不符合我们预期。
rank:跳跃排序,这个更符合实际。比如,统计结束后,取前10名决定保研名单,实际上只有10个保研名额,名额是固定的,dense_rank连续排列可能满足条件的有13个人,rank跳跃排列取前10名就是取出来10条记录。
dense_rank:连续排序
具体语法可以参考这个地址:https://yq.aliyun.com/articles/593698
顺便提一下,窗口函数返回的集合数不会改变,也就是说,原来有多少数据窗口函数就会返回多少数据。与之相比,group by不会返回所有数据,只会返回一个统计量。
本文深入探讨了SQL中的窗口函数row_number、rank和dense_rank的使用场景和区别,通过实例解析了如何利用这些函数进行数据排序和排名,适用于数据分析和数据库操作的学习者。
371

被折叠的 条评论
为什么被折叠?



