
正文
oracle如何计算排名 oracle top 100
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle数据库中怎样依据成绩实现排名
首先,来构造一些数据
drop table test;
create table test
(
name varchar2(10),
account number(5)
);
insert into test values ('张三','5');
insert into test values ('王五','10');
insert into test values ('小二','10');
insert into test values ('李四','20');
insert into test values ('小三','40');
insert into test values ('小四','50');
insert into test values ('小五','90');
insert into test values ('小六','90');
insert into test values ('小七','90');
commit;
下面来看一下一些方式的排名结果:
1. select t.*,dense_rank() over(order by t.account asc) 排名 from test t;
2. select t.*,dense_rank() over(order by t.account desc) 排名 from test t;
3. select t.*,rank() over(order by t.account asc) 排名 from test t;
4. select t.*,rank() over(order by t.account desc) 排名 from test t;
相关问答
Q1: oracle rank函数怎么用
简单用法:
rank() over(partition by 分组字段 order by 排序字段)
partition by 分组字段为可选。
oracle里面相关的排序函数:
row_number 排名不并列
rank 排名并列
dense_rank排名并列
集中函数区别:
一共四名选手参赛,两名选手的成绩一致,皆为第二名。那么按照不同的算法排名如下:
row_number 1,2,3,4 (2,3的成绩一致)
rank 1,2,2,4(没有第三名)
dense_rank 1,2,2,3
Q2: oracle怎么查排名头两位信息
oracle查询排名可以使用排名函数。
比如:RANK DENSE_RANK
参考语句:
--按照笔试成绩进行排名,取出前两名
select * from
(
SELECT p.writtenExam, i.stuName, i.stuClass,
RANK() OVER ( ORDER BY p.writtenExam desc ) 排名1
,DENSE_RANK() OVER ( ORDER BY p.writtenExam desc) 排名2
FROM stuInfo i
INNER JOIN stuMarks p
ON i.stuNo = p.stuNo
) f
where 排名1=2
Q3: oracle中的sql求总分前三名
可以用row_number来查询。
1、创建数据表,插入数据:
create table sc
(id int,
name varchar(20),
class varchar(20),
score int);
insert into sc values (1,'badkano','一年一班',100);
insert into sc values (2,'百度知道团长','一年一班',99);
insert into sc values (3,'du小短','一年一班',95);
insert into sc values (4,'du小小动','一年一班',97);
insert into sc values (5,'du小智','一年一班',80);
insert into sc values (6,'吕布','一年二班',67);
insert into sc values (7,'赵云','一年二班',90);
insert into sc values (8,'典韦','一年二班',89);
insert into sc values (9,'关羽','一年二班',70);
insert into sc values (10,'马超','一年二班',98);
commit;
2、查询分数的前三名,可用以下语句:
select * from
(select row_number() over (order by score desc) rn,sc.* from sc)
where rn=3;
3、结果显示:
Q4: rank函数排名是怎么样的?
要利用什么函数,首先找出对应的函数名称。按字母顺序查找以R开头的,点击确定。在菜单栏中单击插入命令的函数,指定的函数也就是说你要对哪一个数进行排名,这里选择的是H2中单元格的总成绩。
函数名后面的参数中,number为需要求排名的那个数值或者单元格名称(单元格内必须为数字),ref 为排名的参照数值区域,order的为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。这里共讲到三个参数,需要注意的第三个参数是可以省略的。
除了选择插入函数还可以直接在单元格里面输入函数也可以得到同样的效果。在B2单元格里面先输入等于号,一般等于号输入了之后就代表这个单元格里面的是一个公式。
RANK是一个从oracle 8.1.6开始引入的统计函数。RANK的功能是按照某种分组方式计算出返回结果的排行。RANK函数有两个,一个是RANK,另外一个是DENSE_RANK。RANK排序在碰到并列值的时候,下一个排行序号会跳过并列的值,而DENSE_RANK排序的结果有并列排名,下一个排行顺序仅仅加一。
关于oracle如何计算排名和oracle top 100的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






