`

oracle中rank() over与row_number()的区别

 
阅读更多

rank() OVER对有相同的值,标记相同的值。row_number() 则不会。

故如果要进行排重操作,使用row_number() 将不会有重复记录的产生。

 

eg:

 

-------rank() over-------------

select tmp.*

       from (select s.YTNEWSID,s.TITLE,s.TITLE_IMG,s.CHANNEL_ID,

                          rank() over(partition by s.CHANNEL_ID order by release_date desc) px

                          from YT_NEWS s

                          where s.status=1

                          ) tmp

                 where px <= 5

 

partition by s.CHANNEL_ID order by release_date desc根据列CHANNEL_ID 分组,按照release_date 降序排列。

 

------row_number() over()-------

select *

  from (select  s.YTNEWSID,s.TITLE,s.TITLE_IMG,s.CHANNEL_ID,

               (Row_number()

                over(partition by channel_id order by release_date desc)) rn

          from news s)

 where rn <= 5;

 

分享到:
评论

相关推荐

    RANK OVER()和ROW_NUMBER()OVER的使用

    介绍rank() over()分析函数和 row_number() over 的使用实例及其异同点

    深入探讨:oracle中row_number() over()分析函数用法

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...

    Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK() 类似,不过RANK 排序的时候跟派名次一样,...

    ORACLE 常用分析函数

     ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值相同,而其后的序列值依旧递增,rank则是重复值所在行的序列值相同,但其后的序列值从...

    Oracle开发之分析函数(Rank, Dense_rank, row_number)

    在前面一篇《Oracle开发之分析函数简介Over》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名 ②按区域和客户订单总额进行排名 ③找出订单总额排名前13位的客户 ④...

    Oracle中rank,over partition函数的使用方法

    本文主要介绍Oracle中rank,over partition函数的用法,希望对大家有所帮助。

    oracle分析函数在BI分析中应用事例

    ,row_number, ratio_to_report Over不能单独使用,用来制定数据窗口大小 Partition by表示分类数据集合,在此集合上的运算 Order by 跟排序字段,range时只能按一个字段排序,使用rows是可以跟多个字段排序 Range ...

    深入浅出Oracle分析函数

    目录 Oracle开发专题之:分析函数(OVER) Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) Oracle开发专题之:分析函数3(Top/Bottom N、First/Last、NTile) Oracle开发专题之:窗口函数 ...

    oracle排名函数的使用方法分享

    在oracle中,有rank,dense_rank,row_number,以及分组排名partition。 说明: rank:排名会出现并列第n名,它之后的会跳过空出的名次,例如:1,2,2,4 dense_rank:排名会出现并列第n名,它之后的名次为n+1,例如:1,2,...

    ORACLE分析函数

    Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法 Oracle分析函数参考手册 开窗函数(over)详解

    oracle分析函数,窗口函数,报表函数

    oracle分析函数,窗口函数,报表函数 分析函数(OVER) 分析函数2(Rank, Dense_rank, row_number) 分析函数3(Top/Bottom N、First/Last、NTile)

    oracle 分析函数详解(有例子)

    2 Oracle开发专题之:分析函数 Rank Dense rank row number 3 Oracle开发专题之:分析函数3 Top Bottom N First Last NTile 4 Oracle开发专题之:窗口函数 5 Oracle开发专题之:报表函数 6 Oracle开发专题之:...

    oracle高级函数说明

    包含Oracle常用的高级函数,比如取前N名,每个分组的前N名等。 详细介绍Oracle分析函数(OVER、Rank、Dense_rank、row_number、Top/Bottom N、First/Last、NTile) ,窗口函数,报表函数

    oracle分组排序统计高级用法

    oracle如何实现分组排序和统计、聚集,如何分组求top N,什么是over分析函数,row_number(),rank(),dense_rank()区别又是什么, 如何找到一条记录的前后值,这份文档写得太好了。

    oracle-10G函数大全.chm

    1,数值型函数(abs()、sign()、ceil()、floor()、power()、exp()、round()...);...6,分析函数(sum(...) over(...)、dense_rank、row_number()、lag()...); 7,其它函数(decode()、nvl()、nvl2()、least()...);

    Oracle连续相同数据的统计

    有些事情始终是需要坚持下去的。...row_number() OVER(ORDER BY ID)-row_number() OVER(PARTITION BY val ORDER BY ID) x FROM LCY ) GROUP BY val,x ORDER BY MIN(ID); 第二种rank(): SELECT val,COUNT(*

    深入浅出oracle分析函数(全)

    分析函数(OVER) ...分析函数2(Rank, Dense_rank, row_number) 分析函数3(Top/Bottom N、First/Last、NTile) 窗口函数 报表函数 分析函数总结 26个分析函数 PLSQL开发笔记和小结 分析函数简述

    Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)

    在前面《Oracle开发之分析函数(Rank、Dense_rank、row_number)》一文中,我们已经知道了如何为一批记录进行全排列、分组排列。假如被排列的数据中含有空值呢? 代码如下:SQL&gt; select region_id, customer_id,  ...

    oracle常用分析函数与聚合函数的用法

    今天是2019年第一天,在此祝大家新年快乐,梦想还在路上,让我们...rownumber ( ) over ( [partition by col] order by col ) rank() 是排名的函数,该函数组内排序后会进行跳号,分数相同的作为并列。 dense_rank()

    Oracle事例

    20.oracle8中扩充了group by rollup和cube的操作。有时候省了你好多功夫的。 下面的语句可以进行总计 select region_code,count(*) from aicbs.acc_woff_notify group by rollup(region_code); &lt;2&gt; 对第1个字段...

Global site tag (gtag.js) - Google Analytics