rank() over,dense_rank(),row_number() 的区别

  1. rank() over是的作用是查出指定条件后进行一个排名,但是有一个特点。假如是对学生排名,那么实用这个函数,成绩相同的两名是并列,例如下图1 2 2 4。

  2. 2

    dense_rank()的作用和rank()很像,唯一的一点区别就是,领命学生的成绩并列以后,下一位同学并不空出并列所占的名次,例如下图1 2 2 3。

  3. 3

    row_number()就不一样了,它和上面两种的区别就很明显了,这个函数不需要考虑是否并列,哪怕根据条件查询出来的数值相同也会进行连续排名,如下图

    参考自:http://jingyan.baidu.com/article/597035521ff2ec8fc107404b.html

时间: 2024-10-05 06:04:59

rank() over,dense_rank(),row_number() 的区别的相关文章

sql 中 rank() over,dense_rank(),row_number() 的区别

rank() over是的作用是查出指定条件后进行一个排名,但是有一个特点.假如是对学生排名,那么实用这个函数,成绩相同的两名是并列,例如下图1 2 2 4. dense_rank()的作用和rank()很像,唯一的一点区别就是,领命学生的成绩并列以后,下一位同学并不空出并列所占的名次,例如下图1 2 2 3. row_number()就不一样了,它和上面两种的区别就很明显了,这个函数不需要考虑是否并列,哪怕根据条件查询出来的数值相同也会进行连续排名,如下图 https://jingyan.ba

oracle中rank() over, dense_rank(), row_number() 的区别

假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩进行排序. select * from student 1. rank over ()可以实现对学生排名,特点是成绩相同的两名是并列,如下1 2 2 4 5 select name, course, rank() over(partition by course order by score desc) as rank from student; 2. dense_rank()和rank over(

[转]oracle分析函数Rank, Dense_rank, row_number

oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number)   目录 =============================================== 1.使用rownum为记录排名 2.使用分析函数来为记录排名 3.使用分析函数为记录进行分组排名 一.使用rownum为记录排名: 在前面一篇<Oracle开发专题之:分析函数>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:

oracle分析函数Rank, Dense_rank, row_number

http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html 目录===============================================1.使用rownum为记录排名2.使用分析函数来为记录排名3.使用分析函数为记录进行分组排名 一.使用rownum为记录排名:在前面一篇<Oracle开发专题之:分析函数>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名

SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较

排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一.row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号

sql server 2000 对应 sql server 2005的row_number()、rank()、DENSE_RANK( )、ntile( )等用法

转自CSDN:http://blog.csdn.net/htl258/article/details/4006717 SQL server 2005新增的几个函数,分别是row_number( ).rank( ).,DENSE_RANK( ).ntile( )下面以实例分别简单讲解. 1.row_number( )         先来点数据,先建个表 SET NOCOUNT ONCREATE TABLE Person(FirstName VARCHAR(10),Age INT,Gender C

Hive分析窗体函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK

继续介绍几个序列函数: NTILE.ROW_NUMBER,RANK和DENSE_RANK 环境信息:Hive版本号为apache-hive-0.14.0-binHadoop版本号为hadoop-2.6.0Tez版本号为tez-0.7.0 数据: P088888888888,2016-02-10,1 P088888888888,2016-02-11,3 P088888888888,2016-02-12,1 P088888888888,2016-02-13,9 P088888888888,2016-

四个排名函数(row_number、rank、dense_rank和ntile)的比较

排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一.row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号

关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法

CREATE TABLE t_harry ( id int NOT NULL, Number varchar(255) DEFAULT NULL, ChannelID varchar(255) DEFAULT NULL, TimeStamp datetime DEFAULT NULL, PRIMARY KEY (id) ) ; INSERT INTO t_harry VALUES ('1', 'Group3', '3', '2015-05-27 00:00:00'); INSERT INTO t