rank函数怎么用oracle,oracle rank 函数的使用
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 函数的使用相关推荐
- oracle 函数_oracle中row_number、rank、dense_rank() 的区别(over函数)
row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号. ...
- oracle 的 rank()函数
Oracle rank()分析函数: 分为:(1)连续或不连续:dense_rank,rank (2)分区或不分区:使用partition,不使用partition 举例:stud ...
- mysql over rank_mysql实现Oracle 的rank() over()函数
之前要查询排序且有排名,如果是oracle的话有rank() over()函数,但是mysql没有这样的函数,只能自己试着用变量实现 表结构: SELECT id, score , @rank := ...
- oracle中treat函数,Oracle 函数概览
-- Start Oracle 内置的函数真的是很多,要精通每个函数几乎是不可能的,所以本文并不打算介绍每个函数的具体用法,而是提供一个概览,让您了解每个函数的功能,这样,当你感觉你需要某些功能的函数 ...
- Oracle中rank() over, dense_rank(), row_number() 的区别
Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...
- oracle的rank,over partition 使用 和lead
http://blog.csdn.net/rokii/article/details/6429145 排列(rank ())函数.这些排列函数提供了定义一个集合(使用 PARTITION 子句),然后 ...
- oracle的连接函数,Oracle各种连接函数总结
1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2. ...
- [转]oracle分析函数Rank, Dense_rank, row_number
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number) 目录 ==================== ...
- row number函数 oracle,oracle函数 ROW_NUMBER()
[语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...
- Oracle 列转行函数 Listagg()
本文来源于:dacoolbaby 的 <Oracle 列转行函数 Listagg()> 这是一个Oracle的列转行函数:LISTAGG() 1 with temp as( 2 sel ...
最新文章
- centos上安装zookeeper
- python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
- python怎么读文件里的某一行-python如何读取文件中的某几行
- SpringBoot集成Redis实现排行榜
- error while loading shared libraries: libopencv_highgui.so.3.2: cannot open shared object file 的解决办法
- 从容 IT 人生路,开发工具伴我行——“葡萄城 30 周年”征文
- python开发图片_python实现简单的图片隐写术
- 广西龙脊梯田景区发生山体崩塌
- 三层交换机连接路由器时配置OSPF注意事项
- 一个Ext2+SWFUpload做的图片上传对话框收藏
- 51单片机 酒精浓度测试仪
- find linux 指定后缀_Linux下备份目录下指定的某些后缀文件
- linaro交叉编译工具安装配置
- AI学习 Day06 内置函数
- 关于小程序 scroll
- “adb”不是内部或外部命令的解决方法
- [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
- 玩一玩Android下载框架
- G2553与F5529串口
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛