Oracle分析函数 — rank, dense_rank, row_number用法

时间:2023-01-01 16:07:13

本文通过例子演示了Oracle分析函数 —— rank, dense_rank, row_number的用法。

//首先建score表
create table score(
course   nvarchar2(20),
stu_name nvarchar2(20),
score   number(2));

//插入数据
insert into score values ('Math','Tough1',95);
insert into score values ('Math','Tough2',93);
insert into score values ('Math','Tough3',94);
insert into score values ('Math','Tough4',95);
insert into score values ('Math','Tough5',94);

//查看
select * from score order by score desc;

COURSE STU_NAME SCORE
Math Tough1 95
Math Tough4 95
Math Tough5 94
Math Tough3 94
Math Tough2 93
  • rank() over

按course分组,并按score排名。
若score相同,rank会跳跃式排名——例如有两个第一名,接下来直接是第三名,没有第二名。

select course, stu_name, score,
       rank() over(partition by course order by score desc) "RANK"
from   score;

COURSE STU_NAME SCORE RANK
Math Tough1 95 1
Math Tough4 95 1
Math Tough5 94 3
Math Tough3 94 3
Math Tough2 93 5
  • dense_rank() over

按course分组,并按score排名。
若score相同,dense_rank不会跳跃式排名——例如有两个第一名,接下来是第二名。

select course, stu_name, score,
      dense_rank() over(partition by course order by score desc) "RANK"
from score;

COURSE STU_NAME SCORE RANK
Math Tough1 95 1
Math Tough4 95 1
Math Tough5 94 2
Math Tough3 94 2
Math Tough2 93 3
  • row_number() over

按course分组,并按score排名。
若score相同,row_number排名也不一样。

select course, stu_name, score,
      row_number() over(partition by course order by score desc) "RANK"
from score;

COURSE STU_NAME SCORE RANK
Math Tough1 95 1
Math Tough4 95 2
Math Tough5 94 3
Math Tough3 94 4
Math Tough2 93 5

Oracle分析函数 — rank, dense_rank, row_number用法的更多相关文章

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

    oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number)   目录 ==================== ...

  2. oracle分析函数Rank, Dense_rank, row_number

    http://www.cnblogs.com/*sky/archive/2010/02/24/oracle_rank.html 目录=============================== ...

  3. oracle sql rank dense_rank row_number fisrt last

    測試表emp

  4. 【DB2】DB2中rank(),dense_rank(),row_number()的用法

    1.准备测试数据 DROP TABLE oliver_1; ),SUB_NO ),SCORE int); ,,); ,,); ,,); ,,); ,,); ,,); 2.详解rank(),dense_ ...

  5. Oracle 的开窗函数 rank,dense_rank,row_number

    1.开窗函数和分组函数的区别 分组函数是指按照某列或者某些列分组后进行某种计算,比如计数,求和等聚合函数进行计算. 开窗函数是指基于某列或某些列让数据有序,数据行数和原始数据数相同,依然能曾现个体数据 ...

  6. rank,dense_rank,row_number使用和区别

    rank,dense_rank,row_number区别 一:语法(用法):     rank() over([partition by col1] order by col2)      dense ...

  7. Oracle分析函数-keep(dense_rank first/last)

    select * from criss_sales where dept_id = 'D02' order by sale_date ; 此时有个新需求,希望查看部门 D02 内,销售记录时间最早,销 ...

  8. [z]一个SQL语句分清楚RANK(),DENSE_RANK(),ROW_NUMBER()三个排序的不同

    转自:http://blog.csdn.net/s630730701/article/details/51902762 在SCOTT用户下,执行下面SQL; SELECT s.deptno,s.ena ...

  9. rank() | dense_rank() | row_number() over(PARTITION BY sex order by age desc ) 的区别

    1.row_num() over()函数:根据某个字段排序后编号1,2,3.. select *,ROW_NUMBER() over ( order by majorid) as numfrom St ...

随机推荐

  1. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  2. 基于SOA架构的TDD测试驱动开发模式

    以需求用例为基,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段.研发准备 ...

  3. 基于react实现无限分级菜单

    在开发CMS(内容管理系统)系统时,一般都会用到一个侧边栏或者顶部的二级或者三级菜单,当点击或者鼠标悬浮时,菜单能够随之展开或收起. 本文纯粹为了练习一下react,因此我会在react环境下实现这么 ...

  4. ASP&period;NET反射(转载)

    两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时 ...

  5. 利用CSS3实现页面淡入动画特效

    利用CSS3动画属性"@keyframes "可实现一些动态特效,具体语法和参数可以网上自行学习.这篇文章主要是实践应用一下这个动画属性,实现页面淡入特效,在火狐24版.chrom ...

  6. Ubuntu安装与配置KVM

    事前检查 查看一下linux是32位还是64位 file /bin/ls 确认一下 CPU支持硬件虚拟化(不支持也没关系,可以继续) egrep -o '(vmx|svm)' /proc/cpuinf ...

  7. E&period; Vanya and Balloons Codeforces Round &num;355 &lpar;Div&period; 2&rpar;

    http://codeforces.com/contest/677/problem/E 题意:有n*n矩形,每个格子有一个值(0.1.2.3),你可以在矩形里画一个十字(‘+’形或‘x’形),十字的四 ...

  8. java 一个类调用另一个类的方法

    在要调用的类B中对调用类A实例化(在B中:A a = new A();a.function();)

  9. TortoiseGit功能介绍

    TortoiseGit功能介绍 使用方便 强大的提交对话框 每个项目设置 最小日志消息长度,以避免意外提交空日志消息 用于拼写检查的语言 与问题跟踪系统集成 有用的工具 有多种语言版本 Tortois ...

  10. 导入maven项目出现 Unsupported IClasspathEntry kind&equals;4

    Unsupported IClasspathEntry kind=4 这个异常会导致项目无法使用spring ide启动 来自:http://blog.csdn.net/kongqz/article/ ...