select c1.departid 部門,
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供承德網(wǎng)站建設、承德做網(wǎng)站、承德網(wǎng)站設計、承德網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、承德企業(yè)網(wǎng)站模板建站服務,10年承德做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
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
/
一樓邏輯有問題,這個SQL是先在表中取出前10行,在進行排序;
應該先對表排序,在取出前10行;
select * from a (select * from table order by xxx) a where rownum=10;
首先,來構(gòu)造一些數(shù)據(jù)
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;
下面來看一下一些方式的排名結(jié)果:
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查詢排名可以使用排名函數(shù)。
比如: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中前N條數(shù)據(jù)可用row_number來實現(xiàn)。
如表中數(shù)據(jù):
現(xiàn)在要求按照ID倒序,取出前十位:
oracle中執(zhí)行方法:
select?t.id,t.name?from
(select?test.*,row_number()?over?(order?by?id?desc)?rn?from?test)?t
where?rn=10;
結(jié)果:
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://muchs.cn/article30/phicso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、自適應網(wǎng)站、網(wǎng)站排名、營銷型網(wǎng)站建設、微信小程序、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)