oracle如何取出排名,oracle计算排名

oracle分组排行取前三

select c1.departid 部门,

创新互联建站专业为企业提供承德网站建设、承德做网站、承德网站设计、承德网站制作等企业网站建设、网页设计与制作、承德企业网站模板建站服务,10年承德做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

max(case when

(select count(*) from company c2 where c1.departid=c2.departid and c1.payc2.pay)=0

then name

else '' end) 第一名,

max(case when

(select count(*) from company c2 where c1.departid=c2.departid and c1.payc2.pay)=1

then name

else '' end) 第二名,

max(case when

(select count(*) from company c2 where c1.departid=c2.departid and c1.payc2.pay)=2

then name

else '' end) 第三名

from company c1 group by departid order by departid

/

如何从一张ORACLE表中用一条语句将数据排序并取出前10行

一楼逻辑有问题,这个SQL是先在表中取出前10行,在进行排序;

应该先对表排序,在取出前10行;

select * from a (select * from table order by xxx) a where rownum=10;

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;

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

oracle如何查询前十个数据

oracle中前N条数据可用row_number来实现。

如表中数据:

现在要求按照ID倒序,取出前十位:

oracle中执行方法:

select t.id,t.name from

(select test.*,row_number() over (order by id desc) rn from test) t

where rn=10;

结果:

oracle里取排名前3位的记录

select user_id_a, cnt

from (select user_id_a, cnt

from table

where user_id_a = user_id

order by user_id_a desc)

where rownum 4


网页标题:oracle如何取出排名,oracle计算排名
标题URL:http://myzitong.com/article/phicso.html