我是sql的新手,正在处理任务。有一个问题,我应该在哪里使用排名函数,但我不知道如何使用它。我试着在网上找一些信息,但还是有问题。我在这里张贴问题,如果你有任何有用的文章或评论,请在这里张贴。
谢谢,
发布于 2013-02-11 18:20:21
当我们使用按降序POST_DATE排序的rank()时,最近的日期的等级为1:
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都不能保证的。这看起来就像
row_number() over ( order by post_date desc, aid asc ) as rn请记住,你的老师可能足够聪明,知道StackOverflow,所以要诚实地分配学分。
发布于 2013-02-11 12:34:59
rank函数的语法如下:
rank( expression1, ... expression_n ) WITHIN GROUP ( ORDER BY expression1, ... expression_n )这是一个例子:
select rank(1000, 500) WITHIN GROUP (ORDER BY salary, bonus) from employees;https://stackoverflow.com/questions/14805807
复制相似问题