问题描述
嗨,我对分析函数RANK() 和DENSE_RANK() 有一个非常简单的问题。
你能告诉我一个真实的情况,当我们使用 “RANK(),为什么不DENSE_RANK()”,反之亦然。除了学生排名计算之外。提前谢谢。
你能告诉我一个真实的情况,当我们使用 “RANK(),为什么不DENSE_RANK()”,反之亦然。除了学生排名计算之外。提前谢谢。
专家解答
Dense_rank总是分配连续的值。
排名给出 “奥林匹克排名”。因此,当许多行具有相同的值时,下一个后值将从第n行开始:
康纳在此视频中进一步讨论了这一点:
排名给出 “奥林匹克排名”。因此,当许多行具有相同的值时,下一个后值将从第n行开始:
update hr.employees
set salary = 7000
where department_id = 100
and salary <= 7800;
select salary,
rank() over (order by salary) rk,
dense_rank() over (order by salary) dr
from hr.employees
where department_id = 100;
SALARY RK DR
7000 1 1
7000 1 1
7000 1 1
8200 4 2
9000 5 3
12008 6 4
康纳在此视频中进一步讨论了这一点:
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




