TABLE:S (subject,mark)

数学,80

语文,70

数学,90

数学,60

数学,100

语文,88

语文,65

语文,77

现在我想要的结果是:每门科目的前3名的分数

数学,100

数学,90

数学,80

语文,88

语文,77

语文,70

那么语句就这么写:

select * from (select rank() over(partition by subject order by

mark desc) rk,S.* from S) T

where T.rk<=3;

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

rank函数怎么用oracle,oracle rank 函数的使用相关推荐

  1. oracle 函数_oracle中row_number、rank、dense_rank() 的区别(over函数)

    row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号. ...

  2. oracle 的 rank()函数

    Oracle rank()分析函数: 分为:(1)连续或不连续:dense_rank,rank           (2)分区或不分区:使用partition,不使用partition 举例:stud ...

  3. mysql over rank_mysql实现Oracle 的rank() over()函数

    之前要查询排序且有排名,如果是oracle的话有rank() over()函数,但是mysql没有这样的函数,只能自己试着用变量实现 表结构: SELECT id, score , @rank := ...

  4. oracle中treat函数,Oracle 函数概览

    -- Start Oracle 内置的函数真的是很多,要精通每个函数几乎是不可能的,所以本文并不打算介绍每个函数的具体用法,而是提供一个概览,让您了解每个函数的功能,这样,当你感觉你需要某些功能的函数 ...

  5. Oracle中rank() over, dense_rank(), row_number() 的区别

    Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...

  6. oracle的rank,over partition 使用 和lead

    http://blog.csdn.net/rokii/article/details/6429145 排列(rank ())函数.这些排列函数提供了定义一个集合(使用 PARTITION 子句),然后 ...

  7. oracle的连接函数,Oracle各种连接函数总结

    1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2. ...

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

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

  9. row number函数 oracle,oracle函数 ROW_NUMBER()

    [语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...

  10. Oracle 列转行函数 Listagg()

    本文来源于:dacoolbaby 的   <Oracle 列转行函数 Listagg()> 这是一个Oracle的列转行函数:LISTAGG() 1 with temp as( 2 sel ...

最新文章

  1. centos上安装zookeeper
  2. python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
  3. python怎么读文件里的某一行-python如何读取文件中的某几行
  4. SpringBoot集成Redis实现排行榜
  5. error while loading shared libraries: libopencv_highgui.so.3.2: cannot open shared object file 的解决办法
  6. 从容 IT 人生路,开发工具伴我行——“葡萄城 30 周年”征文
  7. python开发图片_python实现简单的图片隐写术
  8. 广西龙脊梯田景区发生山体崩塌
  9. 三层交换机连接路由器时配置OSPF注意事项
  10. 一个Ext2+SWFUpload做的图片上传对话框收藏
  11. 51单片机 酒精浓度测试仪
  12. find linux 指定后缀_Linux下备份目录下指定的某些后缀文件
  13. linaro交叉编译工具安装配置
  14. AI学习 Day06 内置函数
  15. 关于小程序 scroll
  16. “adb”不是内部或外部命令的解决方法
  17. [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
  18. 玩一玩Android下载框架
  19. G2553与F5529串口
  20. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛

热门文章

  1. 笔记本计算机左侧插,关闭笔记本计算机的内置显示屏,并连接两个外部显示器以拆分屏幕。...
  2. 让你的创业失败的18个昏招(转)
  3. 有关1024的冷知识
  4. 清理linux缓存及临时文件,【小知识】缓存和临时文件
  5. “创新实践”项目介绍8:《无人机跟拍》
  6. (可下载)《2020-2021年金融行业网络安全研究报告》正式发布
  7. js用滚动条模拟横向时间轴
  8. 任务管理器,CPU一直不刷新如何解决
  9. Cimatron 15.0 SP4
  10. igm修复所需userinit