首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rank函数oracle sql

Rank函数oracle sql
EN

Stack Overflow用户
提问于 2013-02-11 12:16:37
回答 2查看 16.1K关注 0票数 0

我是sql的新手,正在处理任务。有一个问题,我应该在哪里使用排名函数,但我不知道如何使用它。我试着在网上找一些信息,但还是有问题。我在这里张贴问题,如果你有任何有用的文章或评论,请在这里张贴。

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-11 18:20:21

当我们使用按降序POST_DATE排序的rank()时,最近的日期的等级为1:

代码语言:javascript
复制
select aid
       , email
       , trunc((rnk-1)/5) + 1 as pageno
from ( select aid
              , email
              , rank() over (order by post_date desc ) as rnk
       from ads )

您可能需要调整页码的计算;在这一点上,问题有点模棱两可(“在除第一页之外的其他页面中列出的所有广告的页码")。

正如@AndriyM评论的那样,在现实生活中,我们将使用ROW_NUMBER()而不是RANK(),因为该函数将为每一行生成一个没有间隙的不同数字,这是RANK()和DENSE_RANK都不能保证的。这看起来就像

代码语言:javascript
复制
row_number() over ( order by post_date desc, aid asc ) as rn

请记住,你的老师可能足够聪明,知道StackOverflow,所以要诚实地分配学分。

票数 0
EN

Stack Overflow用户

发布于 2013-02-11 12:34:59

rank函数的语法如下:

代码语言:javascript
复制
rank( expression1, ... expression_n ) WITHIN GROUP ( ORDER BY expression1, ... expression_n )

这是一个例子:

代码语言:javascript
复制
select rank(1000, 500) WITHIN GROUP (ORDER BY salary, bonus) from employees;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14805807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档