2025年窗口函数rank()和dense rank()的区别(rank和dense_rank)

窗口函数rank()和dense rank()的区别(rank和dense_rank)p 窗口函数 和 都是用于计算某个分组中每一行的排名 区别在于它们对于并列排名的处理不同 具体来说 p 如果有多行数据排名相同 它们的排名将会相同 下一个排名将会跳过这些排名相同的行 如果有多行数据排名相同 它们的排名也将相同 但是下一个排名将会继续紧随这些排名相同的行 举个例子 假设有以下表格

大家好,我是讯享网,很高兴认识大家。



 <p>窗口函数 和 都是用于计算某个分组中每一行的排名&#xff0c;区别在于它们对于并列排名的处理不同。具体来说&#xff1a;</p> 

讯享网

  • :如果有多行数据排名相同,它们的排名将会相同,下一个排名将会跳过这些排名相同的行。
  • :如果有多行数据排名相同,它们的排名也将相同,但是下一个排名将会继续紧随这些排名相同的行。

举个例子,假设有以下表格

讯享网

我们可以使用以下 SQL 查询语句来计算各个分数的排名:

 

执行该查询语句后,将得到以下结果:


讯享网

讯享网

可以看到,根据分数排序后,id 为 1 和 4 的两行排名相同,它们的 函数的返回值都是 1,但是 函数的返回值都是 1,下一个排名将会紧随在它们后面。而对于 id 为 3、5 和 2 的三行,它们的排名是不同的。

综上所述, 和 的主要区别就在于它们处理并列排名的方式不同。如果需要让排名紧密连续,可以使用 ;如果需要跳过相同排名的行,可以使用 。

小讯
上一篇 2025-04-16 22:03
下一篇 2025-06-01 14:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196122.html