RANK()
和 DENSE_RANK()
函数有什么区别?如何在以下 emptbl
表中找出第n个薪水?
DEPTNO EMPNAME SAL
------------------------------
10 rrr 10000.00
11 nnn 20000.00
11 mmm 5000.00
12 kkk 30000.00
10 fff 40000.00
10 ddd 40000.00
10 bbb 50000.00
10 ccc 50000.00
如果表数据中有 nulls
,如果我想找出 nth
工资会怎样?
原文由 user1357722 发布,翻译遵循 CC BY-SA 4.0 许可协议
RANK()
为您提供有序分区内的排名。平局被分配相同的排名,下一个排名被跳过。因此,如果您在 2 级有 3 个项目,则列出的下一个等级将是 5 级。DENSE_RANK()
再次为您提供有序分区内的排名,但排名是连续的。如果有多个项目的排名,则不会跳过排名。至于空值,它取决于
ORDER BY
子句。这是一个简单的测试脚本,您可以使用它来看看会发生什么:这是一个很好的解释和一些例子的链接。