`

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;

 

分享到:
评论

相关推荐

    oracle row_number用法

    在Oracle数据库中,`ROW_NUMBER()`函数是一种窗口函数,主要用于为查询结果中的每一行分配一个唯一的序列号。这一特性使得它在处理分组数据时非常有用,尤其是在需要对数据进行排序并按特定顺序标记每行的情况下。 ...

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

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

    oracle分析函数row_number() over()使用

    总之,`ROW_NUMBER() OVER()`是Oracle数据库中进行数据处理和分析的重要工具,它可以为数据提供有序的标识,便于进行排名、分组和筛选等操作,从而满足各种复杂的查询需求。在实际工作中,掌握这一功能能显著提升SQL...

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

    Oracle分析函数Rank、Dense_rank和row_number是用于处理数据集的高级工具,它们在数据库查询中发挥着关键作用,特别是在需要对数据进行排序和分组时。这三种函数都有各自的特点,适用于不同的业务场景。 1. **row_...

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

    Oracle数据库中的`row_number() over()`分析函数是一个非常实用的工具,用于为数据集中的每一行分配一个唯一的整数,这个数字基于指定的排序条件。在处理大数据集时,它可以帮助我们进行分页、排名或者在复杂的查询...

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

    Oracle数据库中的分析函数是SQL查询中的强大...总的来说,理解并熟练运用RANK()、ROW_NUMBER()和LAG()等分析函数,能帮助数据库管理员和开发人员更好地处理和分析Oracle数据库中的数据,提高数据处理的准确性和效率。

    oracle分析函数

    - **rank()** 和 **dense_rank()**:与 `row_number()` 类似,但当遇到相同排序值时,`rank()` 会跳过一些行号,而 `dense_rank()` 不会。 #### 拓展应用 - **数据排名**:可以使用 `row_number()` 来确定数据集中...

    ORACLE 常用分析函数

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

    ORACLE_OVER函数

    OVER函数通常与窗口函数(如RANK(), DENSE_RANK(), ROW_NUMBER(), SUM(), AVG()等)一起使用。其基本语法形式如下: ```sql &lt;window_function&gt; OVER ( [window_spec] ) ``` 其中`&lt;window_function&gt;`代表具体的窗口...

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

    row_number() over (order by to_number(score) desc) "row_number" from lcy; ``` 接下来,我们讨论Oracle的聚合函数。这些函数用于汇总数据,对一组值执行计算并返回单个结果。常见的聚合函数包括: 1. **AVG...

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

    它可以与 `RANK()`, `ROW_NUMBER()`, `DENSE_RANK()` 等函数结合使用,以在特定的行集上执行计算。 `PARTITION BY` 子句则是在每个分区内独立执行操作。它将数据集划分为多个逻辑部分,每个部分有自己的排名或计算...

    oracle_排列rank()函数

    在本篇文章中,我们将深入探讨`RANK()`函数的工作原理、应用场景以及与其他窗口函数的区别。 ### `RANK()`函数详解 `RANK()`函数的基本语法如下: ```sql RANK() OVER (PARTITION BY column_list ORDER BY order_...

    oracle分析函数over_及开窗函数.txt

    本文将详细介绍Oracle中的`OVER`子句以及几种常用的开窗函数,包括`ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`和`LAG()`等。 #### 二、基本概念 - **`OVER`子句**:`OVER`子句用于指定分析函数的作用范围,它可以...

    oracle_hints

    例如,`SELECT * FROM (SELECT ..., ROW_NUMBER() OVER (ORDER BY salary DESC) as rank FROM employees) WHERE rank 将返回薪资最高的10名员工。 在实际使用中,应谨慎使用hints,因为过度依赖或不恰当的使用可能...

    ORACLE分析函数

    通过熟练掌握Oracle分析函数,特别是`RANK()`,`ROW_NUMBER()`和`LAG()`,以及如何有效地使用`OVER()`子句,我们可以更高效地处理和分析大型数据集,从而优化数据库查询和报表生成。在实际工作中,根据需求灵活运用...

    Oracle分页技术(txt文档)

    为了解决这个问题,Oracle引入了RANK(), DENSE_RANK(), 和 ROW_NUMBER()这三个窗口函数,它们可以在更复杂的查询场景下实现分页。 例如,使用ROW_NUMBER()实现分页: ```sql SELECT * FROM ( SELECT ROW_NUMBER()...

    oracle-jdbc分页实现(只需传入sql语句即可实现分页)

    Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标(CURSOR)以及Oracle的高级分页功能如ROW_NUMBER()、RANK()和DENSE_RANK()等。 1. ROWNUM伪列: ROWNUM是Oracle数据库特有的一个伪列,它...

Global site tag (gtag.js) - Google Analytics