从品牌网站建设到网络营销策划,从策略到执行的一站式服务
oracle查询排名可以使用排名函数。
创新互联公司从2013年开始,先为锦江等服务建站,锦江等地企业,进行企业商务咨询服务。为锦江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
比如: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
简单用法:
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
首先,来构造一些数据
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;
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图