`
快乐绿茶
  • 浏览: 53266 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

关于dense_rank()与rank()的区别

阅读更多

dense_rank与rank()用法相当,但是有一个区别:dence_rank在处理相同的等级时,等级的数值不会跳过。rank则跳过。

 

  例如:表

    A B C
a          liu          wang
a          jin          shu
a          cai          kai
b          yang      du
b          lin          ying
b          yao        cai
b          yang      99

例如:当rank时为:
select m.a,m.b,m.c,rank() over(partition by a order by b) liu from test3 m

A          B             C          LIU
a          cai          kai          1
a          jin           shu        2
a          liu           wang     3
b          lin           ying        1
b          yang      du           2
b          yang      99           2
b          yao        cai           4

而如果用dense_rank时为:

select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m

A          B             C          LIU
a          cai          kai          1
a          jin           shu        2
a          liu           wang     3
b          lin           ying        1
b          yang      du           2
b          yang      99           2
b          yao        cai           3

分享到:
评论

相关推荐

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

    rank函数与rank函数类似,同样考虑到了排序字段值相同的情况,但它的处理方式是连续分配序号,不会因为值的重复而跳过序号。还是以上述为例,当field1字段值相同时,dense_rank函数会连续分配序号,即后三条记录的...

    ROW_NUMBER、RANK、DENSE_RANK 和 NTILE

    ROW_NUMBER、RANK、DENSE_RANK 和 NTILE 排名函数 MS SQL 2005 中的排名函数包括 ROW_NUMBER、RANK、DENSE_RANK 和 NTILE,这四个函数可以有效地分析数据并提供排序值。下面将详细介绍每个函数的用法和示例。 一、...

    分析函数ROW_NUMBER、RANK、DENSE_RANK的用法

    **DENSE_RANK()** 函数与RANK()相似,但它不会跳过排名。即使有多个行具有相同的值,它们也会被赋予相同的排名,但下一行的排名会紧接着上一行的排名。 ##### 语法: ```sql DENSE_RANK() OVER ([<partition_by_...

    实例讲解sql server排名函数DENSE_RANK的用法

    在本实例中,我们将深入探讨`DENSE_RANK`函数的用法,以及它与另一种排名函数`RANK`的区别。 首先,让我们了解`DENSE_RANK`函数的基本概念。`DENSE_RANK`函数在处理具有相同值的列时,会连续地分配排名。这意味着...

    Hive中分组取topN_row_number-rank和dense_rank的使用.pdf

    dense_rank()函数在处理并列数据时,与rank()类似,也是赋予相同的排名,但与rank()不同的是,它不会产生排名上的跳跃,也就是说,即使有并列排名存在,下一条记录的排名会紧接前一个排名之后。文档通过一个查询语句...

    SQL server中row_number(),rank(),dense_rank()排序

    最后,`dense_rank()`函数与`rank()`类似,但它不会跳过任何数字。即使有多行具有相同的排序值,`dense_rank()`也会连续分配排名。所以,如果有两个学生在同一门课程上得分相同,他们会得到相同的排名,而下一个学生...

    "rank()、dense_rank()和row_number()的区别"score.txt

    “rank()、dense_rank()和row_number()的区别”文章的date

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

    - `dense_rank()` 与`rank()` 类似,也是处理并列的情况,但它不会产生空缺。如果有并列,它会连续分配排名。 ```sql SELECT DENSE_RANK() OVER (ORDER BY customer_sales DESC) AS dense_rank, region_id, ...

    sql四大排名函数之ROW_NUMBER、RANK、DENSE_RANK、NTILE使用介绍

    DENSE_RANK()函数与RANK()类似,但它保证了排名的连续性。当遇到相同值时,DENSE_RANK()不会跳过排名,而是连续分配排名。所以如果有两个学生并列第一,他们都会获得排名1,下一个学生无论分数如何,都将获得排名2。...

    SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法

    最后,`DENSE_RANK()`函数与`RANK()`类似,但它不会跳过排名。如果有相同排序值的行,`DENSE_RANK()`会连续分配相同的排名,不会留下空缺。 总结来说,这三个函数的主要区别在于如何处理相等的排序值: 1. `ROW_...

    ROW_NUMBER(),RANK()和DENSE_RANK()之间的区别

    在SQL查询中,排序和分组数据是常见的需求,而`ROW_NUMBER()`, `RANK()`, 和 `DENSE_RANK()` 这三个函数都用于为结果集中的每一行分配一个唯一的排名值,但它们之间存在微妙的区别。这篇文章将深入探讨这三个窗口...

    [sql server]SQL Server2005杂谈(3):四个排名函数的比较.doc

    dense_rank 函数与 rank 函数相似,但 dense_rank 函数会跳过缺失的排名编号。例如,如果使用 dense_rank 函数来生成序号,这 3 条记录的序号是相同的,而第 4 条记录的序号会是 4,而不是跳过 2。 dense_rank 函数...

    SQL 获取顺序号的四种方法 IDENTITYRANKDENSE RANKROW NUMBER

    SQL 获取顺序号的四种方法:IDENTITY、RANK、DENSE_RANK、ROW_NUMBER 在 SQL 中,获取顺序号是非常常见的操作。今天,我们将讨论四种获取顺序号的方法:IDENTITY、RANK、DENSE_RANK、ROW_NUMBER。每种方法都有其优...

    oracle_排列rank()函数

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

    Sql Server2005对t-sql的增强之排名函数

    DENSE_RANK函数与RANK类似,也返回分区中行的排名,但区别在于它不会跳过任何排名。即使有并列的情况,DENSE_RANK也会连续分配排名。例如,如果两个学生分数相同,他们都会获得相同的排名,而下一个学生的排名将是...

Global site tag (gtag.js) - Google Analytics