MySQL8.0窗口函数之排名函数rank、dense_rank的使用

语法:与rank相同,即dense_rank over 示例: 由于dense_rank的语法与rank相同,因此示例代码也相同,但排名结果会有所不同。总结: rank和dense_rank都是MySQL8.0中的窗口函数,用于对数据进行排名。 rank在处理并列名次时会跳过后续名次,而dense_rank则保持排名的连续性。 这两个函数都可以结合par...
MySQL8.0窗口函数之排名函数rank、dense_rank的使用
MySQL8.0中的窗口函数rank和dense_rank主要用于对数据进行排名。以下是关于这两个函数的使用说明:
1. rank函数 功能:对数据进行排名,如果存在并列名次,则后续名次会跳过。例如,如果有两个第一名,则下一个名次是第三名。 语法:rank over partition by:可选参数,用于将数据分组,每个分组内独立排名。 order by:指定排序的列和排序方式。 示例: 根据成绩从高到低排名:select *, rank over as 名次 from sc; 按课程分组,求每门课程的成绩排名:select *, rank over as 名次 from sc;
2. dense_rank函数 注意:虽然dense_rank的具体使用语法与rank相同,但在处理并列名次时有所不同。 功能:对数据进行排名,如果存在并列名次,则后续名次不会跳过。例如,如果有两个第一名,则下一个名次是第二名。 适用场景:当需要连续的排名,不希望因为并列而跳过名次时使用。 语法:与rank相同,即dense_rank over 示例: 由于dense_rank的语法与rank相同,因此示例代码也相同,但排名结果会有所不同。
总结: rank和dense_rank都是MySQL8.0中的窗口函数,用于对数据进行排名。 rank在处理并列名次时会跳过后续名次,而dense_rank则保持排名的连续性。 这两个函数都可以结合partition by和order by子句使用,以实现更复杂的排名需求。
2025-03-15
mengvlog 阅读 56 次 更新于 2025-12-14 16:15:59 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部