我知道使用Rank和Dense Rank函数的语法 但我无法在现实世界中找到任何用途。
例如 DENSE_RANK
ranking userid
1 500
1 500
2 502
2 502
和排名
Ranking UserID
1 500
1 500
1 500
1 500
1 500
1 500
1 500
8 502
8 502
8 502
8 502
8 502
8 502
8 502
15 504
我无法理解1,1 2,2值如何在现实世界中有用。
另一方面,我做非常清楚地了解row_number over partition
的真实用途是什么;我只是找不到我能用这种信息做什么(密集和常规等级)
答案 0 :(得分:4)
您可以使用它来查找每个组的前n行
这里有一个非常好的解释:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2920665938600
答案 1 :(得分:3)
具体的例子是任意的,不一定有用。只要你明白他们做了什么(qv @Kevin Burton的链接),并且至少可以清楚地记得这个功能存在,那么如果情况出现,他们将会有用 - 如果不是关键 - 你将能够将它们从数据库开发人员的技巧中拉出来。 (我曾经使用过RANK一次,也许是两次,每次都非常有用,但我不能 - 也不需要 - 在没有查找的情况下回忆细节。)